jQuery:鼠标悬停 DIV 效果

标签 jquery html css

对于我的问题的新颖性表示歉意,我仍在习惯 jQuery。我想做最简单的效果。我在很多不同的网站上看到过这一点。基本上就是当鼠标悬停在电子邮件上时,文本会出现在其上方。

我尝试使用 jsFiddle 制作一些东西,但它的行为根本不符合我的预期。不过,您可以看到我想要的效果:http://jsfiddle.net/5dyrJ/

$(function() {
    $('#main').on("mouseover", function (){
        $("#slider").animate({"right":"-30%"}, "slow");
    }).on("mouseout", function (){
        $("#slider").animate({"right":"-99%"}, "fast");
    });
});

有人可以解释一下如何有效地获得这种效果吗?

最佳答案

问题:

您当前出现问题的原因是 mouseover()/mouseout()将在进入/离开子元素时触发。

解决方案:

您可以使用mouseenter()mouseleave()在这种情况下(或简写 hover() ):

$(function() {
    $('#main').on("mouseenter", function (){
        $("#slider").animate({"right":"-30%"}, "slow");
    }).on("mouseleave", function (){
        $("#slider").animate({"right":"-99%"}, "fast");
    });
});

Your jsFiddle here.

为什么会这样?

这是有效的,因为进入/离开子元素时不会触发 mouseenter()/mouseout()Here is a great example jsFiddle显示 mouseover/mouseenter 之间的差异。

另请注意,正如 @adeneo 在他的 jsFiddle 中所示,您的示例实际上可以仅使用 CSS 组合 transitions 来完成。和 :hover状态。

关于jQuery:鼠标悬停 DIV 效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17622568/

相关文章:

使用 UpdatePanel 的 ASP.NET AJAX

javascript - jquery 位置随着 .css() 的行为发生变化而变化

javascript - 使用 Javascript 在运行时禁用 <a href>

jQuery UI 选项卡,单击不同选项卡时更新 url

html - 设置具有剩余高度的子 div

php - 如何在 PHP 变量更新时切换 CSS 动画?

html - 如何将 flex-grow div 限制在位置 : relative divs? 内

html - CSS 多背景问题

javascript - 通过从下拉框中进行选择来更改 HTML5 中的地理位置图

css - html页面中的自定义标签(如xml)?