我试图通过淡入淡出两个图像来创建徽标悬停效果。我尝试过使用CSS,但结果看起来并不像预期的那么好(尽管它完全适用于其他目的),所以我决定尝试jQuery。 (忽略标签,他们是博主)。如何使用jQuery和CSS创建图像悬停淡入淡出效果?
这是我的第一个方法(在淡入淡出时看起来不错,但'display:none'在第一次悬停时不能正确显示'display:block',因此图像从初始位置移动然后它可以追溯到那个位置徘徊时,它完美的作品。
<script type='text/javascript'>
//<![CDATA[
$(function() {
$('#MyLogoContainer').hover(function() {
$('#MyLogoHover').fadeIn('slow');
$('#MyLogo').fadeOut('slow');
}, function() {
$('#MyLogo').fadeIn('slow');
$('#MyLogoHover').fadeOut('slow');
});
});
//]]>
</script>
我的第二个办法解决的CSS位置问题,但动画看起来并不流体都和两个图像在某些时候消失几乎完全,这看起来不太好,也没有用我的拳头发生。
<script type='text/javascript'>
//<![CDATA[
$(function() {
$('#MyLogoContainer').hover(function() {
$('#MyLogoHover').fadeIn('slow').css('display','block');
$('#MyLogo').fadeOut('slow').css('display','none');
}, function() {
$('#MyLogo').fadeIn('slow').css('display','block');
$('#MyLogoHover').fadeOut('slow').css('display','none');
});
});
//]]>
</script>
问题出现在CSS中。不知何故,我必须找到一种方法,以便显示属性在定位这两个SVG图像中不发挥关键作用,所以我可以使用第一个jQuery代码,而不会对我的SVG图像的位置发生任何更改。
#MyLogoContainer {
width: 100%;
left: 50%;
margin: 0 0 0 -350px;
position: absolute;
}
#MyLogo {
width: 700px;
display: block;
position: absolute;
}
#MyLogoHover {
width: 700px;
display: none;
position: absolute;
}
,jQuery将让这个容易得多。否则,您可以通过更改要淡入的元素的类来使用css转换。我们需要看到更多的代码才能够提供帮助。 HTML的外观如何? –
要将一幅图像淡入另一幅图像,两幅图像必须在淡入淡出的同时显示。创建两个图像,一个在另一个之上。当顶部的一个消失时,将CSS'opacity'设置为0,使用CSS'transition'。 – Aloso
https://jsfiddle.net/ahmadabdul3/mvw9xm89/1/ < - 一对夫妇的例子 –