在列表项悬停时更改图像时添加淡入/淡出效果的问题

Posted

技术标签:

【中文标题】在列表项悬停时更改图像时添加淡入/淡出效果的问题【英文标题】:Issuse with adding FadeIn/Out effect when changing image on list item hover 【发布时间】:2021-11-11 08:06:57 【问题描述】:

我已成功创建菜单,其中包含通过菜单列表项悬停更改照片的选项。 但是当照片从一张变为另一张时,我有一个添加淡入/淡出效果的问题。

代码如下:

<div id="menu">
    <img src="menu1.jpg" >
    <ul>
        <li><a data-image="menu1.jpg" href="#">Item 1</a></li>
        <li><a data-image="menu2.jpg" href="#">Another item</a></li>
        <li><a data-image="menu3.jpg" href="#">One more item</a></li>
    </ul>
</div>
<!-- /#menu -->

<script>
    var image = $('#menu').find('img').attr('src');
        $('#menu ul li a').mouseover(function() 
            var currentImage = $(this).attr('data-image');
            $(this).parent().parent().parent().find('img').attr('src', currentImage);

        );
</script>

我尝试过类似的方法,但没有成功

$('#menu ul li a').mouseover(function() 
    $(this).parent().parent().parent().find('img').hide().attr('src', currentImage).fadeIn(2000);
, function () 
    $(this).parent().parent().parent().find('img').fadeOut(2000,function()
      $(this).parent().parent().parent().attr('src', currentImage).fadeIn();
    );
);

【问题讨论】:

【参考方案1】:

只需将您的 JS 脚本替换为:

您需要通过ID或类名调用图像:id="loadImage" 先淡出隐藏图像然后.fadeIn();

html

<div id="menu">
    <ul>
        <li><a data-image="1.jpg" href="#">Item 1</a></li>
        <li><a data-image="2.jpg" href="#">Another item</a></li>
        <li><a data-image="3.jpg" href="#">One more item</a></li>
    </ul>
    <img src="1.jpg"  id="loadImage">
</div>

JS:

$(document).ready(function () 
    $('#menu ul li a').on("mouseover", function() 
        var currentImage = $(this).attr('data-image');
        $("#loadImage").attr('src', currentImage).hide().fadeIn();
    );
);

【讨论】:

以上是关于在列表项悬停时更改图像时添加淡入/淡出效果的问题的主要内容,如果未能解决你的问题,请参考以下文章

jQuery在悬停时更改(带有淡入淡出动画)div的背景图像

当博客加载更多图像时,mouseover 和 mouseout 淡入淡出效果停止

如何仅使用 CSS 在具有淡入淡出效果的悬停时更改 DIV `background linear-gradient`? [复制]

CSS:我可以为图像颜色更改悬停效果添加轻松过渡吗?

jquery悬停图像淡入淡出交换

带有“淡入淡出”/悬停效果的产品图像,这会导致图像移位