gpt4 book ai didi

jquery 过境动画和 .stop() fx 队列

转载 作者:行者123 更新时间:2023-12-03 23:05:54 25 4
gpt4 key购买 nike

首先,jQuery Transit 非常出色。如果您还没有看过,请查看http://ricostacruz.com/jquery.transit/并感到惊讶!

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

我在这里发布了一个 fiddle :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 队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11892918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com