wenn Selektoren verketten?
-
06-07-2019 - |
Frage
ok, im Versuch, etwas zu unterschiedlichen Höhen zu animieren, wenn eine ausgewählte ID eine ausgewählte Klasse. Ich habe den folgenden Code ein.
function myfunction() {
if ($('#homebutton').hasClass("active"));
{
$('#content').animate({height: "240px",opacity: 1}, 100 , hideLoader());
}
if ($('#showbutton').hasClass("active"));
{
$('#content').animate({height: "79px",opacity: 1}, 200 , hideLoader());
}
if ($('#aboutbutton').hasClass("active"));
{
$('#content').animate({height: "527px",opacity: 1}, 300 , hideLoader());}
if ($('#contactbutton').hasClass("active"));
{
$('#content').animate({height: "1040px",opacity: 1}, 400 , hideLoader());
}
}
das ist Verkettungs die Animationen hintereinander, egal was ich klicke es endet als 1040px hoch, was mache ich falsch ??
versucht zu ändern, es zu
{if ($('#homebutton').hasClass("active"));
$('#content').animate({height: "240px",opacity: 1}, 100 , hideLoader());
}
mit absolut keine Wirkung
Lösung
Sie haben die if-Anweisungen aus dem Code in der nächsten Zeile getrennt. Das einzige, was Sie ausführen, wenn die Bedingung erfüllt ist, ist eine leere Anweisung.
Diese Änderung:
if ($('#homebutton').hasClass("active"));
in:
if ($('#homebutton').hasClass("active"))
und das gleiche gilt für die anderen drei.
Andere Tipps
Sie können, dass eine Menge von unter Ausnutzung der schönen Sprache aufzuräumen, dass Javascript ist:
$.each({
'#homebutton': { height: '240px', speed: 100 },
'#showbutton': { height: '79px', speed: 200 },
'#aboutbutton': { height: '527px', speed: 300 },
'#contactbutton': { height: '1040px', speed: 400 }
}, function(selector, controls) {
if ($(selector).hasClass('active'))
$('#content').animate({height: controls.height, opacity: 1}, controls.speed, hideLoader());
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow