我正在尝试创建一个停止灯动画(以红色>黄色>绿色开始的旋转闪烁灯),当我将鼠标悬停在任何灯上时,它会暂停动画并点亮所选灯并显示悬停div。
到目前为止一切正常(尽管我确信代码可以使用一些优化)但是当我将鼠标悬停在任何灯上时,动画不会立即停止。我尝试使用 clearTimeout & clearInternal 但没有任何效果。
jsfiddle:http: //jsfiddle.net/JZ86B/
这是我的 jQuery
stopLight();
$('[class^="stopLight"]').mouseenter(function(){
clearTimeout(window.flashLightTimer);
clearInterval(window.stopLightInterval);
$(this).css('background-position-x','-106px');
$(this).find('span').fadeIn('fast');
}).mouseleave(function() {
$(this).css('background-position-x','0px');
$(this).find('span').hide('fast');
stopLight();
});
function stopLight() {
window.stopLightInterval = setInterval(function() {
flashLight('red',1000);
flashLight('yellow',2000);
flashLight('green',3000);
}, 3000);
};
function flashLight (a, b) {
window.flashLightTimer = setTimeout(function(){
$(".stopLight-"+a).animate({
'background-position-x': '-106px'
}, 0, 'linear')
.delay(1000)
.animate({
'background-position-x': '0px'
}, 0, 'linear')
}, b);
};