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

如何实现图片hover时显示图标效果?现有JS方案存在闪烁问题

解决鼠标悬停图片显示图标时的闪烁问题

你遇到的闪烁问题,本质是图标元素不在woocommerce-LoopProduct-link容器范围内,当鼠标移到图标上时,会触发produto元素的mouseleave事件——图标隐藏后,鼠标又回到produto区域,再次触发mouseenter,反复切换导致闪烁。

下面提供两种可行的解决方法:

方法一:纯CSS实现(推荐,更简洁高效)

不需要JavaScript,直接用CSS伪类控制显示逻辑,前提是调整好元素结构:

情况1:图标是produto元素的子元素

/* 默认隐藏图标 */
.woocommerce-LoopProduct-link .shopengine-icon-add_to_favourite_1 {
    display: none;
}
/* 鼠标悬停produto时显示图标 */
.woocommerce-LoopProduct-link:hover .shopengine-icon-add_to_favourite_1 {
    display: block;
}

情况2:图标和produto同级(共享父容器)

替换.product-parent为实际的共同父容器类名:

.shopengine-icon-add_to_favourite_1 {
    display: none;
}
.product-parent:hover .shopengine-icon-add_to_favourite_1 {
    display: block;
}

方法二:修复JavaScript代码

如果必须用JS实现,有两种思路:

方案1:让图标不接收鼠标事件

给图标添加pointer-events: none,让鼠标事件穿透到下方的produto元素,避免触发不必要的mouseleave:

var produto = document.getElementsByClassName('woocommerce-LoopProduct-link');
var icone = document.getElementsByClassName('shopengine-icon-add_to_favourite_1')

for (let i = 0; i < produto.length; i++) {
    icone[i].style.display = "none";
    // 让图标不拦截鼠标事件
    icone[i].style.pointerEvents = "none";
    
    produto[i].onmouseenter = function() {
        icone[i].style.display = "block";
    };

    produto[i].onmouseleave = function() {
       icone[i].style.display = "none";
    }; 
}

方案2:在mouseleave时判断目标元素

通过event.relatedTarget检查鼠标离开produto后是否进入了图标元素,若是则不隐藏图标:

var produto = document.getElementsByClassName('woocommerce-LoopProduct-link');
var icone = document.getElementsByClassName('shopengine-icon-add_to_favourite_1')

for (let i = 0; i < produto.length; i++) {
    icone[i].style.display = "none";
    
    produto[i].onmouseenter = function() {
        icone[i].style.display = "block";
    };

    produto[i].onmouseleave = function(e) {
        // 仅当鼠标未进入图标时才隐藏
        if (!icone[i].contains(e.relatedTarget)) {
            icone[i].style.display = "none";
        }
    }; 
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 05:42:44