2009-08-13 17 views
0

Schieben ich den folgenden Code bin mit einem Akkordeon zu bekommen passiert:jQuery Akkordeon: divs mit Bildlaufleisten nicht schön

$(".accordion h2").eq(2).addClass("active"); 
$(".accordion-content").eq(2).show(); 
$(".accordion h2").click(function(){ 
    $(this).next(".accordion-content").slideToggle("slow") 
    .siblings("div:visible").slideUp("slow"); 
    $(this).toggleClass("active"); 
    $(this).siblings("h2").removeClass("active"); 
}); 
$("div.accordion-content").hide(); 
$("h2#open").trigger('click'); 

Wenn jedoch die h2 Klicken auf das Akkordeon zu beeinflussen, wenn einer des „Ziehharmonika-Gehalts "divs hat eine Bildlaufleiste (css auf overflow: auto gesetzt), die divs scheinen sich zu überlappen und nicht gut zu animieren. Gibt es eine Möglichkeit, dass ich "overflow: auto" einstellen kann, nur nachdem das div in Sichtweite ist? Oder anders herum? Danke.

Antwort

1

Sie könnten versuchen, den Änderungsstart und das Ereignis zu ändern, die vor und nach der Animation ausgelöst werden. der ui.newContent sollte das betreffende div sein.

Raue 2 Sekunden Demo here.

$('.selector').accordion({ 
    changestart: function(event, ui) { 
     ui.newContent.css('overflow' , 'hidden'); 
    }, 
    change: function(event, ui) { 
    ui.newContent.css('overflow' , 'auto'); 
    } 
}); 
+0

Dank resquare. Obwohl das Aussehen Ihres Demos so unheimlich ist wie das meines Akkordeons, gibt es dort Überschneidungen ... – lnvrt

+0

Ah sah in Chrom gut aus, in welchem ​​Browser siehst du die Überlappung? – redsquare

+0

Hmmm sieht in FF3.5.2 grimmig aus! – redsquare