jQuery在.addclass中添加淡出
-
01-10-2019 - |
题
我如何淡出.addclass进出。
链接在这里 -
http://www.bikramyogajoondalup.com.au/about-bikram-yoga/postures-benefits.html
这是代码 -
$(document).ready(function() {
$('#menu li#Q_01,#menu li#Q_03,#menu li#Q_05,#menu li#Q_07,#menu li#Q_09,#menu li#Q_11,#menu li#Q_13').hover(function() {
$(this).addClass('pretty-hover');
}, function() {
$(this).removeClass('pretty-hover');
});
});
$(document).ready(function() {
$('#menu li#Q_02,#menu li#Q_04,#menu li#Q_06,#menu li#Q_08,#menu li#Q_10,#menu li#Q_12').hover(function() {
$(this).addClass('pretty-hover_01');
}, function() {
$(this).removeClass('pretty-hover_01');
});
});
谢谢
解决方案
如果是jQuery UI,您可以使用 .toggleClass(class, duration)
为了这。
另外,您可能可以简化选择器,看起来像 :even
和 :odd
将根据您当前的选择器来完成工作,例如:
$(function() {
$('#menu li:even').hover(function() {
$(this).toggleClass('pretty-hover', 500);
});
$('#menu li:odd').hover(function() {
$(this).toggleClass('pretty-hover_01', 500);
});
});
我意识到以上似乎是倒退的,但是 :even
确实选择 第一的 元素,因为它是基于0的元素,因此即使选择0th,第二,第4等。我希望您同意,使其更容易维护:)
根据评论进行编辑 - 自从 .toggleclass()
坚持迅速徘徊,这是一种按预期工作的替代方法,只有更长的时间:
$('#menu li.post:even').hover(function() {
$(this).stop().animate({ backgroundColor: '#009FDD', color: '#FFF' }, 500);
}, function() {
$(this).stop().animate({ backgroundColor: '#FFFFFF', color: '#666' }, 500);
});
$('#menu li.post:odd').hover(function() {
$(this).stop().animate({ backgroundColor: '#623A10', color: '#FFF' }, 500);
}, function() {
$(this).stop().animate({ backgroundColor: '#FFFFFF', color: '#666' }, 500);
});
其他提示
不隶属于 StackOverflow