tl;dr ->鼠标悬停时的精灵动画(完成),鼠标离开时的倒带动画(完成),在播放动画时禁用悬停。(需要解决) - FIDDLE with me
我的菜单有一个相当具体的问题,由于我对 javascript 的了解最多,我认为你可以帮助我。我想在用户将鼠标悬停在动画上时播放动画,并在鼠标离开按钮时让它恢复到原始状态。当我在一个名为 spritely 的脚本的帮助下完成这项工作时,我遇到了一个可用性问题。
即使在播放动画时,代码也会注册多个鼠标悬停。这会导致动画在某些帧处冻结的奇怪行为。
我试图用hoverIntent
一个脚本来解决这个问题,该脚本试图猜测用户的意图,并且仅在.hover
他将鼠标在一定间隔内移动一定数量的像素时才调用。这适用于某些错误,但会破坏交互性以及动画的目的。
我想到了一个从 1000ms 倒数到 1ms 的变量,并将函数与这个变量联系起来,但惨遭失败。
既然我真的想让这个工作,我求助于你,hivemind。简而言之,我想让按钮在动画完成之前.hover
大约一秒钟( )内不注册任何内容。endAnimationDelay
我将不胜感激任何帮助或建议走哪条路线。
jQuery(document).ready(function ($) {
var fps = 25;
var playFrames = 25;
var frames = 25;
var endAnimationDelay = ((fps / playFrames) * 1000);
function playAnimationAbout() {
$('#about').sprite({
fps: fps,
no_of_frames: frames,
play_frames: playFrames
});
}
function playAnimationAboutBack() {
$('#about').sprite({
fps: fps,
no_of_frames: frames,
play_frames: playFrames,
rewind: true
});
setTimeout(function () {
$('#about').destroy();
}, endAnimationDelay);
}
$('#about').hoverIntent(playAnimationAbout, playAnimationAboutBack);
});