gpt4 book ai didi

javascript - fadeIn 不适用于 nth-child(2)

转载 作者:太空宇宙 更新时间:2023-11-04 13:26:00 25 4
gpt4 key购买 nike

有人可以看看我的代码吗?它应该做的是使用 fadeIn 和 fadeOut 为 img 标签设置动画,但它只会淡出第一个 img 而不会淡出第二个 img。我认为我的 css 可能是错误的,这就是为什么第二张图片没有显示我没有收到任何错误

它是一张图片在另一张图片之上

jQuery

$(document).ready(function() {
$('.social-media a').on('mouseenter', function(e) {
$(this).find("img:nth-child(2)").fadeIn();
$(this).find("img:nth-child(1)").fadeOut()
});
})

HTML

<div class="social-media">
<a title="Share On Twitter" href="#">
<img alt="" src="images/icon_twitter.png" />
<img class="test" alt="" src="images/icon_twitter_active.png" />
</a>
</div>

CSS

.social-media {
padding-top: 20px;
width: 166px;
margin: 0 auto 10px auto;
}
.social-media a {
position: relative;
width: 55px;
height: 51px;
}
.social-media a img:nth-child(1) {
opacity: 1;
}
.social-media a img:nth-child(2) {
position: absolute;
left: 0; top: -33px;
opacity: 0;
z-index: 2;
}

最佳答案

您应该使用 <img> 而不是隐藏第二个零不透明度的 display: none 元素:

.social-media a img:nth-child(2) {
position: absolute;
left: 0; top: -33px;
display: none;
z-index: 2;
}

http://jsfiddle.net/8vH4E/

但是,我强烈建议使用简单的 CSS 图像 Sprite 来实现这种效果,不需要 JS。


更新:自从 OP 询问是否可以使用 CSS 以来,我修改了 Fiddle 以排除使用 JS 并仅依赖于使用 CSS 和伪元素:http://jsfiddle.net/8vH4E/2/

.social-media a {
display: block;
position: relative;
width: 100px;
height: 100px;
background-image: url(http://placehold.it/200x200);
background-size: cover;
}
.social-media a::before {
background-image: url(http://placehold.it/200x200/4a7298/eeeeee);
background-size: cover;
content: '';
display: block;
opacity: 0;
pointer-events: none;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
-webkit-transition: all .25s ease-in-out;
transition: all .25s ease-in-out;
}
.social-media a:hover::before {
opacity: 1;
}

我的策略很简单:

  • 改用背景图片。对于大小,我使用了 cover 但您可以自由使用任何大小(绝对像素/点大小、相对百分比大小或动态计算的大小,如 covercontain )
  • 对于悬停状态,使用覆盖整个 <a> 的绝对定位伪元素(通过绝对定位并从所有四个方向偏移零)。我们不需要伪元素上的指针事件,所以我们将它设置为 pointer-events: none
  • <a> 元素悬停时(使用 :hover 选择器作为目标),我们将伪元素的不透明度从 0 切换到 1 。我们在伪元素上声明过渡属性,以实现平滑的、浏览器计算的和 JS 不可知的过渡。

关于javascript - fadeIn 不适用于 nth-child(2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23716583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com