我试图在鼠标悬停时淡出
并在mouseout上淡出:
$("p.follow").mouseover(function(){
$(this).fadeTo("slow", 1.00);
})
$("p.follow").mouseout(function(){
$(this).fadeTo("fast", 0.50);
})
如果你去ryancoughlin.com并且在右边,如果你过去就会看到我的意思,它几乎就像被卡住并且不断消失。
有什么想法吗?
答案 0 :(得分:4)
试试这个:
$("p.follow").hover(function()
{
$(this).stop().fadeTo("slow", 1.00);
},
function()
{
$(this).stop().fadeTo("fast", 0.50);
});
两个主要区别:我使用jQuery hover
事件来关联mouseover和mouseout事件处理程序,这样子元素不会导致令人困惑的行为,并且我使用stop()
函数来阻止动画来自重叠并相互抵消。
答案 1 :(得分:1)
可能值得查看hoverintent插件,这基本上使用一点setTimeout,以便在用户快速移动鼠标穿过元素时不会激活它。易于编码,但值得一看。
答案 2 :(得分:0)
每次鼠标移动到元素上时,都会触发鼠标悬停事件。由于效果是按顺序执行的并且鼠标悬停频繁发生,因此你会得到许多必须“缓慢”执行的效果。
你可能想要的是悬停事件,它只对每个条目执行一次。