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

WordPress站点jQuery文本悬停显示图片出现闪烁问题求修复方案

闪烁原因

闪烁的核心原因是动态生成的悬浮图片会出现在鼠标指针和触发hover的.text-hover-image元素之间,当鼠标移动时,指针会短暂触发悬浮图片的鼠标事件,导致.text-hover-image误判为鼠标移出,触发图片删除逻辑,紧接着鼠标又重新落在.text-hover-image上再次触发图片生成,反复循环就形成了闪烁。

修复方案

只需要做两处核心修改即可解决问题:

  • 给悬浮图片容器添加pointer-events: none样式,让它完全不响应任何鼠标交互,不会抢占鼠标事件触发权
  • 优化图片创建逻辑,避免每次hover都重复创建/删除DOM节点,减少性能损耗和加载闪烁

修复后的完整代码

JavaScript代码

$(document).ready(function () {
    var yOff = 15;
    var xOff = -20;
    var pathToImage = "https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png";
    // 提前创建悬浮图片容器,默认隐藏
    var $hoverImg = $("<p id='image-when-hovering-text' style='display:none;'><img src='" + pathToImage + "'/></p>").appendTo("body");
    $hoverImg.css("position", "absolute");

    $(".text-hover-image").hover(function (e) {
        $hoverImg
            .css("top", (e.pageY - yOff) + "px")
            .css("left", (e.pageX + xOff) + "px")
            .fadeIn("fast");
    },
    function () {
        $hoverImg.fadeOut("fast");
    });

    $(".text-hover-image").mousemove(function (e) {
        $hoverImg
            .css("top", (e.pageY - yOff) + "px")
            .css("left", (e.pageX + xOff) + "px");
    });
});

CSS代码

span {
    text-decoration:underline;
}
#image-when-hovering-text {
    pointer-events: none;
}

HTML代码

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>This is my paragraph with a <a class="text-hover-image" href="#">very special hover</a> effect on the link.</p>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
<p>The hovering works with every element that has <span class="text-hover-image"> a class of <em>"text-hover-image"</em></span></p>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:24:03