Ich möchte zwischen CSS wechseln. Wenn ein Benutzer auf die Schaltfläche ( #user_button
) klickt , wird das Menü ( #user_options
) angezeigt und das CSS geändert. Wenn der Benutzer erneut darauf klickt, wird wieder normal. Bisher ist das alles was ich habe:
$('#user_button').click( function() {
$('#user_options').toggle();
$("#user_button").css({
borderBottomLeftRadius: '0px',
borderBottomRightRadius: '0px'
});
return false;
});
Kann jemand helfen?
Antworten:
Für jQuery-Versionen unter 1.9 (siehe https://api.jquery.com/toggle-event ):
$('#user_button').toggle(function () { $("#user_button").css({borderBottomLeftRadius: "0px"}); }, function () { $("#user_button").css({borderBottomLeftRadius: "5px"}); });
In diesem Fall ist es besser, Klassen zu verwenden, als das CSS direkt festzulegen. Schauen Sie sich die oben genannten Methoden addClass und removeClass an.
$('#user_button').toggle(function () { $("#user_button").addClass("active"); }, function () { $("#user_button").removeClass("active"); });
quelle
Ich würde die toggleClass- Funktion in jQuery verwenden und das CSS für die Klasse definieren, z
/* start of css */ #user_button.active { border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; -webkit-border-bottom-right-radius: 5px; /* user-agent specific */ -webkit-border-bottom-left-radius: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; /* etc... */ } /* start of js */ $('#user_button').click(function() { $('#user_options').toggle(); $(this).toggleClass('active'); return false; })
quelle
Möglicherweise möchten Sie die Befehle .addClass und .removeClass von jQuery verwenden und zwei verschiedene Klassen für die Status erstellen. Für mich wäre dies die beste Vorgehensweise.
quelle
Der Initialcode muss borderBottomLeftRadius: 0px haben
$('#user_button').toggle().css('borderBottomLeftRadius','+5px');
quelle
Die beste Option wäre, einen Klassenstil in CSS wie
.showMenu
und.hideMenu
mit den verschiedenen darin enthaltenen Stilen festzulegen. Dann kannst du so etwas machen$("#user_button").addClass("showMenu");
quelle
Sie können dies tun, indem Sie den folgenden Status beibehalten:
$('#user_button').on('click',function(){ if($(this).attr('data-click-state') == 1) { $(this).attr('data-click-state', 0); $(this).css('background-color', 'red') } else { $(this).attr('data-click-state', 1); $(this).css('background-color', 'orange') } });
Nehmen Sie eine Referenz aus dem Codepen-Beispiel
quelle