2016-04-27 17 views
-1

Ich habe ein Drop-Down mit Slide-Up und Slide-Down-Animation in einem Div.Höhe aller Divs einheitlich einstellen

Wenn das Dropdown-Menü geöffnet ist, lautet die Höhe des DIVs 124px, sonst ist es 20px. Ich habe ein anderes div, für das die Höhe gleich dem ersten div sein soll, wenn die Höhe des Drop-downs von div animiert wird.

I jquery 1.11.0

Hier bin mit meinem Code:

$(".dropdown").hide(); 
$('.title').on('click', function(){ 
    var element = $(".dropdown"); 
    if (element.hasClass('open')) { 
    element.removeClass('open'); 
    element.slideUp(); 
    } 
    else { 
    element.addClass('open'); 
    element.slideDown(); 
    } 
}); 

here is my fiddle.

Was kann ich tun?

Edit: Ich möchte nur die Höhe für beide Divs immer gleich sein.

Wenn sich div 1 Höhe ändert, sollte die js/jQuery die gleiche Höhe auf div 2 setzen.

$(".dropdown").hide(); 
 
$('.title').on('click', function() { 
 
    var element = $(".dropdown"); 
 
    if (element.hasClass('open')) { 
 
    element.removeClass('open'); 
 
    element.slideUp(); 
 
    } else { 
 
    element.addClass('open'); 
 
    element.slideDown(); 
 
    } 
 
});
.d1 { 
 
    border: 1px solid #333; 
 
} 
 
.d2 { 
 
    border: 1px solid #333; 
 
} 
 
.title { 
 
    cursor: pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="d1"> 
 
    <a class="title">title(click here)</a> 
 
    <ul class="dropdown"> 
 
    <li>aaaa</li> 
 
    <li>aaaa</li> 
 
    <li>aaaa</li> 
 
    <li>aaaa</li> 
 
    </ul> 
 
</div> 
 
<br/> 
 
<div class="d2"> 
 
    <a>victim</a> 
 
</div>

+0

Sie die zweite div wollen auch ein Drop-down haben, ist, dass es? –

+0

@Ani bitte die Frage zum zweiten Mal sehen. –

+0

Höhe der beiden divs sind "20px". Überprüfe die Geige. –

Antwort

2

Dies ist ideal für Sie:

var slideDown = $("#d1").height(); 
$(".dropdown").hide(); 
var slideUp = $("#d1").height(); 
$('.title').on('click', function(){ 
    var element = $(".dropdown"); 
    if (element.hasClass('open')) { 
    element.removeClass('open'); 

    element.slideUp(400, function(){}); 
    $("#d2").animate({height: slideUp}, 500); 

    } 
    else { 
    element.addClass('open'); 
    element.slideDown(400, function(){}); 
    $("#d2").animate({height: slideDown}, 500); 

    } 
}); 

JSFiddle

+0

Danke @Rohit für Ihre Antwort. Es funktioniert wie ich wollte außer Animation. Ich möchte Animation in 2. Div wie 1. Div. –

+0

Ich habe Code aktualisiert, jetzt prüfen. –

+0

Danke @Rohit für Ihre Mühe. Alles ist ok. Außer 2. div, s Animation passiert nach 1. div, s Animation ist fertig.Ich brauche beide gleichzeitig. Sie sollten so aussehen, als würden beide gleichzeitig ausgehen und gleichzeitig kollabieren. –

0
$(".dropdown").hide(); 
$('.title').on('click', function(){ 
    var element = $(".dropdown"); 
    if (element.hasClass('open')) { 
    element.removeClass('open');  
    element.slideUp(); 
     -get the height of the dropdown 
    // var elHeight = $('.dropdown').css('height') + 'px'; 
    -apply height to other div 
    // $('.otherdiv').css("height",elHeight) 
    } 
    else { 
    element.addClass('open'); 
    element.slideDown(); 
    // var elHeight = $('.dropdown').css('height') + 'px'; 
    // $('.otherdiv').css("height",elHeight); 
    } 
}); 
+0

Setzen Sie einen Arbeitscode auf. Dieser funktioniert nicht und hat keine Erklärung. –