JQuery переключить CSS?
Я хочу переключаться между CSS, поэтому, когда пользователь нажимает кнопку (#user_button
), он показывает меню (#user_options
) и меняет CSS, а когда пользователь нажимает на него снова, он возвращается к нормальному состоянию. Пока это все, что у меня есть:
$('#user_button').click( function() {
$('#user_options').toggle();
$("#user_button").css({
borderBottomLeftRadius: '0px',
borderBottomRightRadius: '0px'
});
return false;
});
Помогает ли кто-нибудь?
Ответы
Ответ 1
$('#user_button').toggle(function () {
$("#user_button").css({borderBottomLeftRadius: "0px"});
}, function () {
$("#user_button").css({borderBottomLeftRadius: "5px"});
});
Использование классов в этом случае было бы лучше, чем установка css прямо, но посмотрите на addClass и removeClass методы, упомянутые выше.
$('#user_button').toggle(function () {
$("#user_button").addClass("active");
}, function () {
$("#user_button").removeClass("active");
});
Ответ 2
Я использовал бы функцию toggleClass в jQuery и определял CSS для класса, например.
/* 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;
})
Ответ 3
Возможно, вы захотите использовать jQuery . addClass и . removeClass и создать два разных класса для состояний. Это, для меня, было бы лучшим способом сделать это.
Ответ 4
Лучшим вариантом было бы установить стиль класса в CSS, например .showMenu
и .hideMenu
, с различными стилями внутри. Тогда вы можете сделать что-то вроде
$("#user_button").addClass("showMenu");