2016-04-17 15 views
3

Ich versuche, eine div Änderung der Position beim Klicken und dann wieder in die ursprüngliche Position, wenn Sie erneut klicken. Ich kann nicht für das Leben von mir herausfinden, was das Problem ist.Einfache ternäre Operation funktioniert nicht

$("#bottom").click(function() { 

    var $about = $('#bottom'), 
    top = $about.css('top') === '50%' ? '90%' : '50%'; 

$about.stop().animate({top: top}, 500); 
}); 

mein CSS ist:

#bottom { 
top: 90%; 
left: 0; right: 0; 
height: 100%; 
} 

Wenn ich auf #bottom, die div positioniert sich auf 50%, aber wenn ich es wieder treffen, passiert nichts.

+1

was sagt die Konsole? Ternär sieht aus einer Syntaxperspektive gut aus – JordanHendrix

Antwort

1

.css('top') gibt Ihnen nicht die literale CSS top Deklaration; es gibt Ihnen die berechnete Pixelanzahl von oben. Wenn Ihr Behälter für #bottom 100px groß ist, dann gibt $('#bottom').css('top') Ihnen 90px, nicht90%.

Here's a fiddle with a solution for you.

+0

Das erklärt das definitiv, danke. Ich löste das Problem, indem ich 50vh anstelle von 50% verwendete. – Alaw16

+0

Kein Problem - überprüfen Sie meine Bearbeitung für eine Lösung, die mit Prozenten funktioniert. – TAGraves

Verwandte Themen