使用Jquery来停止css动画。这样做的正确方法是什么?

时间:2014-04-29 17:19:57

标签: javascript jquery html css css-animations

我刚在这样的页面上实现了CSS动画:

@-webkit-keyframes backdrop-roll{
    to { background-position-x:100%; }
}
body
{
background-image:url('http://www.wallmay.net/thumbnails/detail/20120331/pokemon%20fields%20ruby%201920x1200%20wallpaper_www.wallmay.com_2.jpg');
background-size: 800px 650px; 
-webkit-animation: backdrop-roll 8s linear infinite;
-webkit-animation-direction:normal
}

有一个更改背景的按钮,我希望该图像保持静止,所以我通过Jquery尝试了这个:

$('body').css('-webkit-animation-play-state','paused');

这就是我想到的,但出于某种原因,它会阻止一切工作。这对我来说是新的,所以我不确定甚至可以查找什么(我发现如何使用css而不是jquery事件来阻止它)。

1 个答案:

答案 0 :(得分:2)

我会将动画播放状态属性放入他们自己的类中,如下所示:

.play{
    -webkit-animation-play-state: running;
}
.pause{
    -webkit-animation-play-state: paused;
}

然后你可以使用jQuery来控制动画:

$(document).ready(function(){
    $('body').addClass('play');

    $('#pause').click(function(){
        if($('body').hasClass('play')){
            $('body').removeClass('play');
        }
    });

    $('#resume').click(function(){
        if(!$('body').hasClass('play')){
            $('body').addClass('play');
        }
    });
});

以下是一个例子:http://jsfiddle.net/F2nQM/