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

如何让div下方元素可见?实现鼠标跟随的隐藏文本效果

实现鼠标圆形区域显示隐藏文本的方案

你之前的思路误区在于:backdrop-filter: opacity(100%)无法恢复文本自身的低透明度——opacity()滤镜是调整背景内容的透明度值,而非提升已半透明元素的可见度。下面提供两种可行的实现方案:

方案一:颜色匹配+反转滤镜(推荐)

将文本颜色设置为与页面背景色完全一致,通过圆形的invert()滤镜反转颜色,让圆形区域内的文本显现。

完整代码

<!DOCTYPE html>
<html>
<head>
  <style>
    body {
      background-color: #ffffff;
      margin: 0;
      padding: 2rem;
    }

    .hidden-content {
      color: #ffffff; /* 与背景色一致,隐藏文本 */
      font-size: 1.5rem;
      line-height: 2;
      max-width: 800px;
    }

    #circle {
      position: absolute;
      transform: translate(-50%, -50%);
      height: 80px;
      width: 80px;
      border-radius: 50%;
      box-shadow: 0 0 40px 10px rgba(0, 0, 0, 0.15);
      pointer-events: none;
      backdrop-filter: invert(100%); /* 反转下方颜色,让文本显现 */
      z-index: 100;
    }
  </style>
</head>
<body>
  <div class="hidden-content">
    这是一段隐藏的文本,只有当鼠标圆形光标移过时才能看见。你可以在这里添加任意多的内容,测试跟随效果。
  </div>
  <div id="circle"></div>

  <script>
    let circle = document.getElementById('circle');

    const onMouseMove = (e) => {
        circle.style.left = e.pageX + 'px';
        circle.style.top = e.pageY + 'px';
    }
    
    document.addEventListener('mousemove', onMouseMove);
  </script>
</body>
</html>

方案二:低透明度文本+增强对比度滤镜

如果偏好使用低透明度的文本,可通过brightness()和contrast()滤镜增强圆形区域内文本的可见度:

关键CSS调整

.hidden-content {
  color: #000000;
  opacity: 0.05; /* 极低透明度隐藏文本 */
  font-size: 1.5rem;
  line-height: 2;
}

#circle {
  /* 其他属性不变 */
  backdrop-filter: brightness(20) contrast(10); /* 增强亮度和对比度,显现文本 */
}

为什么之前的尝试失败?

backdrop-filter: opacity(100%)不会改变文本自身的opacity属性——它仅控制背景内容的透明度渲染逻辑,无法将已半透明的文本恢复为完全可见状态。上述两种方案都是通过修改文本的显示逻辑(颜色匹配/对比度增强),结合backdrop-filter实现预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 18:00:53