Javascript 在实际位置/状态中断/停止CSS3转换

Javascript 在实际位置/状态中断/停止CSS3转换,javascript,css,Javascript,Css,我正在编写一个jQuery插件,通过CSS3转换为元素设置动画。在jQuery中,有一个as.stop(),用于中断选定元素上的当前动画 你知道我怎样才能停止运行CSS3动画吗?是否有一种本地方法来处理此问题,或者我必须测量动画,并将动画元素的样式设置为当前位置、颜色大小或其他什么 这是jQuery插件的当前状态: 我已尝试将“-webkit transition duration”设置为0/none/false。但是它不会停止动画。在不深入插件的情况下,您可以使用所需道具的当前(计算)值重新

我正在编写一个jQuery插件,通过CSS3转换为元素设置动画。在jQuery中,有一个as
.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:你知道自动化当前属性的最佳方法是什么吗?