【发布时间】:2026-02-21 12:40:01
【问题描述】:
我需要能够在悬停时淡入初始图像上方的第二张图像。我需要确保第二张图片最初是不可见的,直到它淡入。另一个重要的注意事项是,任何一张图片都不应在任何时候完全淡出。我尝试了几种方法,例如使用 1 张图片、2 张图片、jquery animate 和 css 过渡。
我听说可以使用 jquery 为属性更改设置动画?如果这是真的,我如何使用 jquery 为 img 中的 'src' 的变化设置动画?
$(".image").mouseenter(function() {
var img = $(this);
var newSrc = img.attr("data-hover-src");
img.attr("src",newSrc);
img.fadeTo('slow', 0.8, function() {
img.attr("src", newSrc);
});
img.fadeTo('slow', 1);
}).mouseleave(function() {
var img = $(this);
var newSrc = img.attr("data-regular-src");
img.fadeTo('slow', 0.8, function() {
img.attr("src", newSrc);
});
img.fadeTo('slow', 1);
});
这是我目前正在使用的。这是我得到的最接近的。但是你可以看到不理想的图像变化。
【问题讨论】:
-
你尝试了什么?你有什么代码可以给我们看吗?
-
只需将两个 div 上下浮动并在悬停时淡出一个。
-
这是您要找的吗? jsbin.com/fepegoce/1/edit
-
您已经提到两个图像都不应该完全淡出。这是否意味着在最终状态下仍然应该有初始图像的提示,而在悬停之前应该有最终图像的提示?还是应该在淡入淡出的终点只有一张图像可见?
-
意思是我不希望初始图像变为 opacity:0,然后图像发生变化,然后新图像变为 opacity:1。我希望它是流畅的运动。
标签: javascript jquery html css image