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

相关问题