如何为 JQuery addClass/removeClass 函数设置动画?

Posted

技术标签:

【中文标题】如何为 JQuery addClass/removeClass 函数设置动画?【英文标题】:How to animate JQuery addClass/removeClass functions? 【发布时间】:2013-03-16 11:16:30 【问题描述】:

我想知道

对于动画功能,似乎我必须放置一些CSS属性,但是如果我有一个类,它使每次触发点击功能时元素显示为块,而所有元素在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>

【问题讨论】:

你好 CairoCoder 找到下面的解决方案:) 【参考方案1】:

您可以将 CSS3 过渡属性应用于使用 jQuery 操作的元素。这是一个带有供应商前缀的示例:

element 
    -webkit-transition: all 2s; // Chrome
    -moz-transition: all 2s; // Mozilla
    -o-transition: all 2s; // Opera
    transition: all 2s;

【讨论】:

【参考方案2】:

如果你使用 jQueryUI,你可以使用 $.toggleClass();函数。

http://api.jqueryui.com/toggleClass/

【讨论】:

【参考方案3】:

你可以使用 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 来添加任何其他过渡。

【讨论】:

【参考方案4】:

您绝对可以使用 jquery 为添加/删除类设置动画。请检查以下格式

.removeClass( className [, duration ] [, easing ] [, complete ] )

下面的示例代码

$( "div" ).click(function() 
   $( this ).removeClass( "big-blue", 1000, "easeInBack" );
);

Reference link

注意:但您必须添加 jquery-ui.js 文件才能使其工作。

<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

希望这会有所帮助。 谢谢

【讨论】:

以上是关于如何为 JQuery addClass/removeClass 函数设置动画?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 css 倾斜过渡添加 jquery 回退?

如何为 JQUERY 数据表返回 JSON 数据?

如何为 JQuery addClass/removeClass 函数设置动画?

如何为 passportjs 使用 jquery/ajax 数据

在 jQuery 中,如何为“最大高度”CSS 属性设置动画?

jquery如何为元素设置style?