当前位置: 首页 > article >正文

在鼠标附近显示一个中心渐变色的高亮效果

在鼠标附近显示一个中心渐变色的高亮效果,可以使用 CSS 的径向渐变(radial-gradient)来创建这个效果。这个方法会让高亮效果从中心向外渐变,逐渐变得透明,从而实现鼠标周围的区域高亮。

使用径向渐变实现鼠标附近的高亮效果

我们将修改之前的示例,使用 radial-gradient 来实现中心渐变色的高亮效果。

示例代码
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Mouse Highlight Effect with Gradient</title>
  <style>
    .container {
      width: 300px;
      height: 200px;
      background-color: #f0f0f0;
      border: 1px solid #ccc;
      position: relative;
      overflow: hidden;
    }

    .highlight {
      position: absolute;
      width: 150px;
      height: 150px;
      background: radial-gradient(circle, rgba(255, 255, 0, 0.5) 0%, rgba(255, 255, 0, 0) 60%);
      pointer-events: none; /* 使高亮区域不阻碍鼠标事件 */
      transform: translate(-50%, -50%); /* 将中心对准鼠标 */
    }
  </style>
</head>
<body>
  <div class="container" id="container">
    这里是一个可以高亮的区域
  </div>

  <script>
    const container = document.getElementById('container');

    // 创建高亮效果的元素
    const highlightDiv = document.createElement('div');
    highlightDiv.classList.add('highlight');
    container.appendChild(highlightDiv);

    // 当鼠标在容器内移动时,更新高亮区域的位置
    container.addEventListener('mousemove', (e) => {
      const rect = container.getBoundingClientRect();
      const mouseX = e.clientX - rect.left;
      const mouseY = e.clientY - rect.top;

      highlightDiv.style.left = `${mouseX}px`;
      highlightDiv.style.top = `${mouseY}px`;
    });

    // 当鼠标离开容器时,隐藏高亮区域
    container.addEventListener('mouseleave', () => {
      highlightDiv.style.display = 'none';
    });

    // 当鼠标进入容器时,显示高亮区域
    container.addEventListener('mouseenter', () => {
      highlightDiv.style.display = 'block';
    });
  </script>
</body>
</html>

代码解释

  1. container: 这是高亮效果的容器。当鼠标在容器内移动时,会显示高亮效果。

  2. .highlight:

    • 使用 position: absolute 使其能够相对于父容器定位。
    • widthheight 控制高亮区域的大小。
    • background: radial-gradient(circle, rgba(255, 255, 0, 0.5) 0%, rgba(255, 255, 0, 0) 60%) 这是一个径向渐变,中心为半透明黄色,向外渐变到完全透明。你可以调整渐变的颜色和透明度,以实现不同的效果。
    • pointer-events: none 确保高亮区域不会阻止鼠标事件传递到它下面的元素。
    • transform: translate(-50%, -50%) 确保渐变的中心位于鼠标所在的位置。
  3. JavaScript 逻辑:

    • 创建一个 highlightDiv,用来显示渐变高亮效果。
    • 使用 mousemove 事件监听鼠标的移动,并根据鼠标的位置动态更新高亮区域的位置。
    • 使用 mouseentermouseleave 事件来控制高亮区域的显示和隐藏。

这样,当鼠标在 container 内移动时,会显示一个跟随鼠标位置的渐变高亮区域,实现了鼠标附近高亮的效果。


http://www.kler.cn/news/294285.html

相关文章:

  • 流媒体技术革新,EasyCVR视频汇聚平台赋能视频监控全面升级
  • Go入门指南(The Way to Go) 完整版PDF
  • ARM SIMD instruction -- fcmpe
  • 出现 /www/server/mysql/bin/mysqld: Shutdown complete 的解决方法
  • yarn install 使用最新淘宝镜像和清华镜像
  • Java基于微信小程序的校园兼职小程序
  • 信号槽、父子关系、隐式共享
  • ant-design-vue中实现a-tree树形控件父子关联选中过滤的算法
  • 算法备案究竟难在哪里?
  • Java Kafka生产者实现
  • 在线式环氧乙烷检测仪:现代工业生产中的环氧乙烷安全监测
  • 一文学会Flask-Login
  • 12. 如何在MyBatis中进行分页查询?常见的分页实现方式有哪些?
  • MySQL的服务器与客户端:架构解析与实践
  • 人工智能训练师边缘计算实训室解决方案
  • 当水泵遇上物联网:智能水务新时代的浪漫交响
  • spring boot项目中配置文件配置mapper*.xml文件路径无效的问题排查记录
  • Vatee万腾平台:科技赋能,开启企业数字化转型新篇章
  • 生日贺卡录放音芯片,多段音频录音ic生产厂商,NVF04M-32minute
  • Codeforces Round 971 (Div. 4) (A~G1)
  • 字节6面,面爆炸了
  • 智慧公厕技术应用、系统架构、应用功能有哪些?@卓振思众
  • C#中LINQ的Cast<T>与OfType<T>
  • DevOps学习笔记
  • 基于SpringBoot+Vue+MySQL的校园周边美食探索及分享平台
  • 初识jQuery
  • Android 15 新特性快速解读指南
  • 使用bert_base_chinese实现文本语义相似度计算
  • Spring Boot-自定义banner
  • 视频提取字幕的软件有哪些?高效转录用这些