jquery - 我怎样才能对 .mousenter THIS 执行两种效果?

标签 jquery css

css 效果很好,但我怎样才能让它同时使用动画效果?

HTML:

<div id="menu">
    <ol>
        <li>Home</li>
        <li>Blog</li>
        <li>Portfolio</li>
        <li>About</li>
    </ol>
</div>

JS:

$('#menu').find('li').mouseenter(function() {
    $(this).css({'text-decoration': 'underline'}).dequeue().animate({"top": "-=5px"}, "fast");
});

最佳答案

你必须给它 position: relative;:

$('#menu').find('li').mouseenter(function() {
    $(this).css({'text-decoration': 'underline', 'position': 'relative'})
        .dequeue().animate({"top": "-=5px"}, "fast");
});

Demo

也就是说,您真的应该在 CSS 中执行此操作,而不是浪费资源尝试使用 jQuery 执行此操作:

#menu li {
    position: relative;
}
#menu li:hover {
    text-decoration: underline;
    top: -5px;
}

CSS Demo

或者,如果您确实希望顶部位置永远递增且永不返回,请使用组合,CSS 用于样式,jQuery 仅用于动画,如我的 third demo 所示。 .

关于jquery - 我怎样才能对 .mousenter THIS 执行两种效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16938889/

相关文章:

javascript - 检测用户是否正在通过 iphone 上的 safari 移动浏览器进行导航

html - 当一个单元格悬停在上面时,有没有一种方法可以将一个类添加到 ng-repeat 中的一行?

html - 如何使用 CSS 在图像 CDN 中设置尺寸?

jquery - 将类添加到 var jquery

Javascript:将键盘输入添加到计算器

javascript - 更改按钮上的跨度文本

javascript - 使用 JQuery 在 5 秒后隐藏元素实例

html - 将非透明文本添加到半透明的 div 容器中?

javascript - 尝试为包含可点击图像的网站构建主页

php - 自定义 php 函数以在 header 中调用