我希望当鼠标悬停在精灵上时动画开始,当鼠标离开时动画消失。
我找到了一些最好的解决方案:为什么 jQuery spritely 动画在第二个 mouseenter 上播放额外的帧?,但是如果您在动画结束之前鼠标移出,它们都会完全出现故障。
那是因为“倒带”功能会独立于我离开鼠标时获得 9 帧
我对下面的解决方案提出了质疑,但它不起作用,我不知道为什么:
$(document).ready(function(e) {
var frame_width = $('#sprite').width();
var play_frames = 10;
$('#sprite').hover(function(){
$('#sprite').sprite({fps: 10, no_of_frames: 10, play_frames: play_frames});
play_frames = 9;
},
function(){
var bg_image = $('#sprite').css('background-position');
bg_image = bg_image.split("px");
bg_image = bg_image[0]; //Gets the sprite width
remaining_frames = ((bg_image*(-1))/frame_width); //Gets the exact frame the image has stopped at
console.log(remaining_frames );
$('#sprite').sprite({fps: 10, no_of_frames: 10, play_frames: remaining_frames , rewind: true});
}
);
});