我已經得到了一個效果,我希望在頁面加載後觸發一秒,然後每隔3秒(重複)觸發一次。當用戶將鼠標懸停在某個元素上時(#hover
),效果暫停(暫時)。當它們停在它上面時,效果會在2秒後恢復。setTimeout與jQuery.hover()重疊
我在疊加聲音和動畫方面遇到了很多麻煩,特別是當我將鼠標懸停並快速停留在元素上時。我的代碼有什麼問題? (Fiddle)
var test;
function hoverTest(arg) {
if (arg == 'stop') {
clearTimeout(test);
}
if (arg == 'start') {
playSound();
$('#hover').transition({
opacity: 0,
duration: 1000,
complete: function() {
$('#hover').transition({
opacity: 1,
duration: 1000,
complete: function() {
test = setTimeout(function() { hoverTest('start'); }, 3000);
}
});
}
});
}
}
$('#hover').hover(function() {
hoverTest('stop');
}, function() {
setTimeout(function() {
hoverTest('start');
}, 2000);
});
function playSound() {
var sound = new Audio('sound.mp3');
sound.play();
}
setTimeout(function() {
hoverTest('start');
}, 1000);
你可以創建一個演示提琴嗎? –
現在用小提琴更新。 – daveycroqet