You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

鼠标悬停div时如何实现background-image平滑切换效果?

背景图平滑切换解决方案

background-image 属于CSS默认不支持过渡动画的属性,直接切换会出现生硬跳变,可通过以下方案实现平滑过渡,完全兼容你当前行内设置背景图的限制:


方案:最低改造成本的淡入淡出方案(全主流浏览器兼容)

1. 新增容器CSS样式

你原有#conf的所有样式保留,新增以下两个属性即可:

#conf {
  /* 原有样式不变 */
  transition: opacity 0.4s ease-in-out;
  opacity: 1;
}

你可以调整0.4s的数值来控制过渡的整体快慢。

2. 微调现有JS代码

修改逻辑为:先降低容器透明度→切换背景图→恢复透明度,实现自然的淡入淡出过渡:

function onmouseover(){
    var element = document.getElementById('conf');
    element.style.opacity = 0;
    setTimeout(() => {
        element.style.backgroundImage = "url('/imgs/jpg/stats.jpg')";
        element.style.opacity = 1;
    }, 200); // 该数值设置为CSS过渡时长的一半即可
}
function onmouseout(){
    var element = document.getElementById('conf');
    element.style.opacity = 0;
    setTimeout(() => {
        element.style.backgroundImage = "url('/imgs/jpg/welcome_back.jpg')";
        element.style.opacity = 1;
    }, 200);
}

可选优化:避免图片加载闪烁

如果首次切换背景图时出现空白,可提前预加载两张背景图,在页面加载完成后执行以下代码即可:

// 预加载背景图
const preloadImgs = ['/imgs/jpg/stats.jpg', '/imgs/jpg/welcome_back.jpg'];
preloadImgs.forEach(imgSrc => {
    const img = new Image();
    img.src = imgSrc;
});

内容的提问来源于stack exchange,提问作者smksmk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 08:36:04