Javascript 在实际位置/状态中断/停止CSS3转换
我正在编写一个jQuery插件,通过CSS3转换为元素设置动画。在jQuery中,有一个asJavascript 在实际位置/状态中断/停止CSS3转换,javascript,css,Javascript,Css,我正在编写一个jQuery插件,通过CSS3转换为元素设置动画。在jQuery中,有一个as.stop(),用于中断选定元素上的当前动画 你知道我怎样才能停止运行CSS3动画吗?是否有一种本地方法来处理此问题,或者我必须测量动画,并将动画元素的样式设置为当前位置、颜色大小或其他什么 这是jQuery插件的当前状态: 我已尝试将“-webkit transition duration”设置为0/none/false。但是它不会停止动画。在不深入插件的情况下,您可以使用所需道具的当前(计算)值重新
.stop()
,用于中断选定元素上的当前动画
你知道我怎样才能停止运行CSS3动画吗?是否有一种本地方法来处理此问题,或者我必须测量动画,并将动画元素的样式设置为当前位置、颜色大小或其他什么
这是jQuery插件的当前状态:
我已尝试将“-webkit transition duration”设置为0/none/false。但是它不会停止动画。在不深入插件的情况下,您可以使用所需道具的当前(计算)值重新使用
css3animate
方法,并将持续时间设置为0(在插件中为1,因为您使用!speed
使用默认值..)
因此,在示例中,使用
var $animated = $('div');
$animated.css3animate({"height": $animated.css('height'), "width": $animated.css('width')}, 1);
我会成功的
举例
当然,您应该为当前使用的属性自动执行此操作。如果在启动动画时使用计时器,在有人使用停止方法时使用计时器,还可以模拟暂停/恢复功能
更新 您可以将传递给动画的
cssObject
存储到元素的数据中,并在停止循环时通过它们获取当前值
因此,在动画方法中,可以使用$obj.data('animationCss',cssObject)代码>和在停止
方法中
stop : function( clearQueue,jumpToEnd ){
return this.each(function(){
var $that = $(this);
var currentCss = {};
var animationCss = $that.data('animationCss');
for (var prop in animationCss)
currentCss[prop] = $that.css(prop);
if (jumpToEnd)
{
animation($that,currentCss,1, function(){animation($that,animationCss,1)});
}
else
{
animation($that,currentCss,1);
}
console.log("stop was called");
});
}
示例:你是想阻止它,比如保持它在当前的水平-(暂停)还是跳过动画到最后?我想实现这两个功能,所以我可以接受任何类型的输入´。停止(假,真)´和´。停止(假,假)´。好吧,我很震惊,我必须这样做:/我希望有一种本地的方式来做。谢谢你的努力+1 PS:你知道自动化当前属性的最佳方法是什么吗?