jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery传输动画和.stop()fx队列大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
首先,jQuery Transit摇滚.如果您还没有看到它,请查看 http://ricostacruz.com/jquery.transit/并感到惊讶!

但有一个问题是虽然它声称使用jQuery的效果队列,而且似乎在大多数情况下,我无法使用jQuery的.stop()方法来处理它.

在这里贴了一个小提琴:http://jsfiddle.net/nicholasstephan/sTpa7/

如果单击动画按钮,则使用标准jQuery .animate()将框慢慢移动到右侧.正如您所期望的那样,按下停止将停止动画.点击重置也会停止动画并将框放回到它开始的位置.

如果你点击过渡,它应该做同样的事情……但它不…

这里发生了什么?有人知道解决方法吗?

谢谢.

解决方法

这是一个可行的解决方案.

尝试创建一个队列额外回调的新转换函数.动画通过停止后出现后,可以清除此回调.清除和跳过指令但是没有从旧的停止功能接收到.但我们可以为此创建一个新的停止功能.这只是在浏览器中输入并且完全未经测试

(function($){
    $.fn.stopableTransition = function (...){
        var skip = false
        var clear = false
        this.handle("stopTransition",function(doclear,doskip){
            skip = doskip; clear = doclear;
        })
        this.transition(...)
        this.queue(function(){
            if(skip){
               //todo: ensure animation is removed from css
               //todo: move object to where the animation would have finished
            } 
            else
            {
               //todo: ensure animation is removed from css
               //todo: make sure object stays at its current position
            }

            if(clear){
                skip = false
                clear = false
                $(this).clearQueue()
            }  
            else 
            { 
                skip = false
                clear = false
                $(this).dequeue()
            }

        })
    }
    $.fn.stopTransition = function (clear,skip){
        clear = (typeof(clear) === 'undefined') ? false : clear;
        skip = (typeof(skip) === 'undefined') ? false : skip;
        this.triggerHandler("stopTransition",[clear,skip])
        this.dequeue();
    }
})(jQuery)

大佬总结

以上是大佬教程为你收集整理的jquery传输动画和.stop()fx队列全部内容,希望文章能够帮你解决jquery传输动画和.stop()fx队列所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: