2016-07-23 101 views
2

我發現了一個關於添加彈出框的教程,但希望框在懸停而不是點擊時出現。我怎樣才能改變這個代碼來做到這一點?在懸停而不是點擊時顯示彈出框

function div_show() { 
    document.getElementById('abc').style.display = "block"; 
} 

function deselect(e) { 
    $('.pop').slideFadeToggle(function() { 
    e.removeClass('selected'); 
    }); 
} 

$(function() { 
    $('#youtube').on('click', function() { 
    if ($(this).hasClass('selected')) { 
     deselect($(this)); 
    } else { 
     $(this).addClass('selected'); 
     $('.pop').slideFadeToggle(); 
    } 
    return false; 
    }); 

    $('.close').on('click', function() { 
    deselect($('#youtube')); 
    return false; 
    }); 
}); 

$.fn.slideFadeToggle = function(easing, callback) { 
    return this.animate({ 
    opacity: 'toggle' 
    }, 'fast', easing, callback); 
}; 
+0

看與 '鼠標懸停' 和 '鼠標移出' 替代click事件。用鼠標替換第一個'點擊'並用鼠標移出第二個'點擊'。 –

回答

3

您可以在jQuery中使用hover()方法:

$("#youtube").hover(function(){ 
    $(this).css("background-color", "yellow"); 
    }, function(){ 
    $(this).css("background-color", "blue"); 
}); 

第一個功能是當用戶的鼠標進入將執行方法,而第二個函數將被解僱當用戶的鼠標離開元素。

演示:https://jsfiddle.net/2hLjs4qt/

+1

這很好。謝謝。有什麼辦法可以禁用動畫嗎? – Whisetter46

+0

@ Whisetter46 - 沒問題,請接受這是答案。要禁用動畫,你可以刪除這行:'$('。pop')。slideFadeToggle();' –

+0

@ Whisetter46 - 停止動畫,在deselect函數中加入'$(this).stop()'或'$('。pop')。stop()' – dinesh

相關問題