在列表项悬停时更改图像时添加 FadeIn/Out 效果的问题
Issuse with adding FadeIn/Out effect when changing image on list item hover
我已成功创建菜单,其中包含通过菜单列表项悬停更改照片的选项。
但是当照片从一张换到另一张时,我无法添加淡入淡出 in/out 效果。
代码如下:
<div id="menu">
<img src="menu1.jpg" alt="">
<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();
});
});
只需将您的 JS 脚本替换为:
- 您需要通过 ID 或 class 名称调用图像:
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" alt="" 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();
});
});
我已成功创建菜单,其中包含通过菜单列表项悬停更改照片的选项。 但是当照片从一张换到另一张时,我无法添加淡入淡出 in/out 效果。
代码如下:
<div id="menu">
<img src="menu1.jpg" alt="">
<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();
});
});
只需将您的 JS 脚本替换为:
- 您需要通过 ID 或 class 名称调用图像:
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" alt="" 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();
});
});