2010-12-08 7 views
0

Ich habe eine <ul> Liste, die ein bisschen lang ist. Wenn Sie diese Listenelemente erweitern (nach unten schieben), scrollt der Browser NICHT herunter und alles ist in Ordnung. Wenn Sie diese Liste der Elemente zusammenziehen (nach oben schieben), blinkt/blinkt der Browser A lot währenddessen.jquery slide blinkt/blinken Problem auf Firefox ubuntu

  • Dies passiert nicht auf MAC Firefox.
  • Weder unter Windows (zumindest die Versionen, die ich testen konnte)
  • Dies tritt stark auf Firefox Linux (Ubuntu).

Hat jemand dieses Problem vor? Wenn ja, was können wir tun, um es zu lösen?

Hier ist ein Codebeispiel zum besseren Verständnis:

$('#btCatA').click(function() { 
    $('#btCatA').toggleClass('selec'); 
    $('#listcatA').slideToggle('slow', function() { 
     // ... 
    }); 
}); 

Antwort

1

Sie wahrscheinlich dies durch eine Verringerung der scrollTop Eigenschaft des window Objekts durch die Höhe dieses Elements vor up Elemente Ihrer Listen Sie schieben verhindern könnten. jQuery hat eine Methode dafür: .scrollTop(). Das könnte man auch animieren, damit es ein wenig weniger hastig aussieht. Der folgende (ungetestet) Code sollte es tun:

var toggleClass = 'selec'; 

$('#btCatA').click(function() { 
    var target = $(this), 
     listElement = $('#listcatA'); 

    if (target.hasClass(toggleClass)) { 
     target.removeClass(toggleClass); 
     $(window).animate({ 
      scrollTop: '-='+listElement.height()+'px' 
     }, 'slow', function() { 
      listElement.slideUp('slow'); 
     }); 
    } else { 
     target.addClass(toggleClass); 
     listElement.slideDown('slow'); 
    } 
}); 
+0

für dieses Leid, ich habe meine Frage- nur aktualisiert Können Sie bitte einen Blick, und, wenn es Punkt noch gilt, wenn diese .scroolTop sollte platziert? thks viel.ps - das Element ist dynamisch (php) gebaut, also gibt es keine feste Höhe. – MEM

+0

@MEM: Sie müssen diese 'scrollTop'-Sache machen, bevor Sie rutschen. Setzen Sie die Slide-Aktion in den Callback Ihrer 'scrollTop'-Animation (nur Slide-Up, Slide-Down sollte separat behandelt werden). – jwueller

+0

@elusise: lass mich ehrlich sein. Ich kann nicht. Ich bin mir nicht sicher, wo ich das programmieren soll. Du hast gesagt, der Ort, Callback von meinem scroolTop, ok ... aber was soll ich auf scroolTop schreiben? Ich bin verloren. Entschuldigung, ziemlich Neuling hier. : s – MEM