javascript - jQuery mouseenter 技巧?

标签 javascript jquery html

我使用 jQuery 来操纵不透明度,效果非常好。然而,我是一个完美主义者,令我烦恼的是 .on('mouseover') 函数只有在过去的 .on('mouseover) 函数完成后才会触发。

HTML:

<div class="feature avans">
    <div class="feature-media">
        <img src="assets/img/avans.png"/>
    </div>
    <a href="">
        <div class="text-wrap">
            <p class="big">Avans</p>
            <h1>Finding work force &mdash; simplified.</h1>
        </div>
    </a>
</div>

CSS:

.feature-wrap {
  width: 1144px;
  margin: 0 auto;
  padding: 0;
}
.feature-wrap .feature {
  width: 100%;
  padding: 0;
  overflow: hidden;
  position: relative;
  background: black;
}
.feature-wrap .feature .feature-media {
  width: 100%;
  opacity: 0.85;
}
.feature-wrap .feature .feature-media img {
  width: 100%;
  height: 350px;
  margin: 0 0 -5px;
  padding: 0;
}
.feature-wrap .feature .text-wrap {
  width: 50%;
  position: absolute;
  top: 0;
  padding: 30px 60px 0;
}

jQuery:

$('.feature').on('mouseenter', function () {
    $(this).children('.feature-media').animate({opacity: 0.93}, 150);
});

$('.feature').on('mouseleave', function () {
    $('.feature-media').animate({opacity: 0.85}, 150);
});

此外,如果有人知道是否有一种方法可以使该功能更像 CSS 原生悬停伪选择器(即,该效果仅在鼠标实际上悬停在相关元素上时才会触发),我会很高兴。

最佳答案

使用.stop():

$('.feature').on('mouseenter', function () {
    $(this).children('.feature-media').stop().animate({opacity: 0.93}, 150);
});

$('.feature').on('mouseleave', function () {
    $('.feature-media').stop().animate({opacity: 0.85}, 150);
});

这将停止之前的所有动画或功能,并启动新的动画或功能。

关于javascript - jQuery mouseenter 技巧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30466268/

相关文章:

html - ListView 的响应式设计代码

javascript - HTML5 文件 API : How to see the result of readAsText()

JavaScript 为计算机执行,但不为 iPad 执行

jquery - 设置 .css() 多个属性不起作用

javascript - Bootstrap 可折叠目标多个元素

javascript - 如何停止函数再次执行,直到经过特定时间

html - 同一行上的 Flex 图像,但每行 100%

javascript - JQuery - 随机化元素在容器内的绝对位置和旋转

javascript - 检测点击外部 react 父组件

javascript - 下载文本文件或图像在 Firefox 上抛出 javascript