我正在尝试创建一个可点击的精灵动画,该动画在第一次单击时向前播放(第 0 帧-> X)并在第 X 帧处停止。一旦完成,单击它将反向播放(第 X 帧-> 0)和在第 0 帧停止。冲洗/重复。
这个 jsFiddle 非常接近:http: //jsfiddle.net/ahainen/njHAC/3/
但是我遇到了一个问题:单击中间的圆圈,它会向前播放。但是在完成后单击圆圈会播放它,但会在错误的帧上结束。从那里,它保持破碎。
我边走边学(这里是平面设计师),所以我试图通过单击动画和倒带来找出 CSS 精灵动画。如果有比这更好的方法,请告诉我。
另外,我目前在那里有一个计时器,以使其在制作动画时无法点击。如果当用户单击它(或悬停它)时,我会喜欢它,它只会反转方向并停在第 0 帧或第 X 帧上。
任何帮助将不胜感激,如果我能提供任何进一步的信息,请告诉我。
相关代码:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jqueryui.js"></script>
<script type="text/javascript" src="js/spritely.js"></script>
<style>
body {background:#181818;}
.spriteContainer {
margin: 0 auto;
width:320px;
height:240px;
position:relative;
padding-top:120px;
display:block;}
.clickButton {
width:320px;
height:240px;
position:absolute;
z-index:2;}
.animatedSprite {
width: 320px;
height: 240px;
background-image: url("http://i.imgur.com/aBlIGEh.png");
display:block;
position:absolute;
z-index:1;}
</style>
</head>
<body>
<div class="spriteContainer">
<div class="clickButton"></div>
<div class="animatedSprite"></div>
</div>
<script type="text/javascript">
$(document).ready(function() {
var play_index = 0;
$('.clickButton').click(function(){
$('.clickButton').css("display", "none");
setTimeout(function(){
$('.clickButton').css("display", "block");
}, 940);
});
$('.clickButton').click(function(){
console.log('second function start');
if(play_index == 0) {
$('.animatedSprite').sprite({fps: 24, no_of_frames:16, play_frames:16});
play_index = 1;
}
else {
$('.animatedSprite').sprite({fps: 24, no_of_frames:16, play_frames:16, rewind:true});
play_index = 0;
}
});
});
</script>
</body>
</html>