我想知道如何为JQuery addClass / removeClass函数设置动画?
对于animate函数,似乎我必须放置一些CSS属性,但是如果我有一个类,每次触发click函数时都会将元素显示为块,而所有元素都显示为隐藏在CSS中。我该如何为这个过程制作动画?
这是我的代码:
<script src="js/jquery-1.9.1.min.js"></script>
<script>
var allSlides = $('li');
$('#nextSlide').click(function(){
var nextSlide = $('.active').next();
if (nextSlide.length == 0)
{
var nextSlide = allSlides.first();
}
$('.active').removeClass('active');
nextSlide.addClass('active');
return false;
});
$('#prevSlide').click(function(){
var prevSlide = $('.active').prev();
if (prevSlide.length == 0)
{
var prevSlide = allSlides.last();
}
$('.active').removeClass('active');
prevSlide.addClass('active');
return false;
});
</script>
答案 0 :(得分:14)
您可以将CSS3过渡属性应用于使用jQuery操作的元素。以下是供应商前缀的示例:
element {
-webkit-transition: all 2s; // Chrome
-moz-transition: all 2s; // Mozilla
-o-transition: all 2s; // Opera
transition: all 2s;
}
答案 1 :(得分:2)
如果你正在使用jQueryUI,你可以使用$ .toggleClass();功能
答案 2 :(得分:1)
您可以使用jQuery .fadeIn(),也可以使用CSS3过渡:
#nextSlide, #prevSlide {
display: none;
-webkit-transition: display .5s ease;
-moz-transition: display .5s ease;
-o-transition: display .5s ease;
}
.active {
transition: display .5s ease;
-webkit-transition: display .5s ease;
-moz-transition: display .5s ease;
-o-transition: display .5s ease;
}
这对你有用。您可以通过替换过渡样式中的display
来添加任何其他过渡。
答案 3 :(得分:0)
你绝对可以使用jquery动画添加/删除类。请检查下面的格式
.removeClass( className [, duration ] [, easing ] [, complete ] )
以下示例代码
$( "div" ).click(function() {
$( this ).removeClass( "big-blue", 1000, "easeInBack" );
});
注意: 但您必须添加 jquery-ui.js 文件才能使其正常运行。
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
希望这会有所帮助。 感谢