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

ops/2024/11/15 6:00:50/

在鼠标附近显示一个中心渐变色的高亮效果,可以使用 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>css">.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.ppmy.cn/ops/107287.html

相关文章

数据结构-广义表

目录 一、逻辑结构 二、存储结构 一、逻辑结构 ①A()&#xff0c;A是一个空表&#xff0c;长度为0&#xff0c;深度为1 ②B(d,e)&#xff0c;B的元素全是原子(d,e)&#xff0c;长度为2&#xff0c;深度为1 ③C(b,(c,d))&#xff0c;C有两个元素&#xff0c;分别是原子b和广…

ubuntu驱动掉了,重装nvidia驱动

跑深度学习&#xff0c;忽然发现显卡驱动掉了 主要根据这篇文章&#xff1a;[超级详细系列]ubuntu22.04配置深度学习环境(显卡驱动CUDAcuDNNPytorch)--[1]安装显卡驱动_ubuntu22 cuda cudnn pytorch-CSDN博客 用里面的在线安装方法不行&#xff0c;换成用2.2 离线安装方法。从…

Java并发:互斥锁,读写锁,Condition,StampedLock

3&#xff0c;Lock与Condition 3.1&#xff0c;互斥锁 3.1.1&#xff0c;可重入锁 锁的可重入性&#xff08;Reentrant Locking&#xff09;是指在同一个线程中&#xff0c;已经获取锁的线程可以再次获取该锁而不会导致死锁。这种特性允许线程在持有锁的情况下&#xff0c;可…

JS基础-ClassList -移动端插件的引入-touch事件-sessionStorage 和 localStorage

目录 1.classList属性 添加类 删除类 切换类 检查类是否存在 替换类 移动端touch事件 2.消除点击延迟 Fastclick插件的引入 引入FastClick 初始化 3.Swiper插件的引入和使用 通过CDN引入 通过npm安装&#xff08;vue中建议&#xff09; 使用SwiperHTML结构 初始化…

图像白平衡

目录 效果 背景 什么是白平衡&#xff1f; 实现原理 将指定图色调调整为参考图色调主要流程 示例代码 效果 将图一效果转换为图二效果色调&#xff1a; 调整后&#xff0c;可实现色调对换 背景 现有两张图像&#xff0c;色调不一致&#xff0c;对于模型重建会有影响。因…

51单片机-第十三节-直流电机驱动(PWM)

一、直流电机介绍&#xff1a; 直流电机是一种将电能转换为机械能的装置。 一般的直流电机有两个电极&#xff0c;电极正接&#xff0c;电机正转&#xff0c;电极反接&#xff0c;电机反转。 直流电机主要由永磁体&#xff08;定子&#xff09;、线圈&#xff08;转子&#…

Java项目——苍穹外卖(一)

Entity、DTO、VO Entity&#xff08;实体&#xff09; Entity 是表示数据库表的对象&#xff0c;通常对应数据库中的一行数据。它通常包含与数据库表对应的字段&#xff0c;并可能包含一些业务逻辑。 DTO&#xff08;数据传输对象&#xff09; 作用&#xff1a;DTO 是用于在…

checksum 与 CRC的不同之处

实际应用&#xff1a; CRC&#xff1a;在外发电压时&#xff0c;在报文的最后两个字节做了CRC计算。 checksum &#xff1a; 在按键状态外发&#xff0c;在报文的最后一个字节做了checksum计算。 它们的共同之处&#xff1a;目的都是为了数据的错误检测功能。 只是在算法的…