首页 > 其他分享 >写一个鼠标跟随的特效

写一个鼠标跟随的特效

时间:2024-12-08 10:13:14浏览次数:3  
标签:特效 cursorFollower 元素 鼠标 50% style 跟随

// 获取鼠标跟随的元素
const cursorFollower = document.createElement('div');
cursorFollower.id = 'cursor-follower';
cursorFollower.style.position = 'fixed';
cursorFollower.style.pointerEvents = 'none'; // 避免干扰其他元素的点击事件
cursorFollower.style.width = '20px';
cursorFollower.style.height = '20px';
cursorFollower.style.borderRadius = '50%';
cursorFollower.style.backgroundColor = 'rgba(0, 0, 0, 0.5)'; // 设置颜色和透明度
cursorFollower.style.transform = 'translate(-50%, -50%)'; // 使中心点作为定位基准
document.body.appendChild(cursorFollower);


// 添加鼠标移动事件监听器
document.addEventListener('mousemove', (e) => {
  const x = e.clientX;
  const y = e.clientY;

  // 更新跟随元素的位置
  cursorFollower.style.left = x + 'px';
  cursorFollower.style.top = y + 'px';
});


// 可选:添加一些额外的样式和动画效果

// 1. 添加过渡效果,使移动更平滑
cursorFollower.style.transition = 'all 0.1s ease';


// 2.  根据鼠标速度改变大小
document.addEventListener('mousemove', (e) => {
    let speed = Math.sqrt(e.movementX ** 2 + e.movementY ** 2);
    let size = Math.max(10, 30 - speed / 3); // 限制大小范围
    cursorFollower.style.width = size + 'px';
    cursorFollower.style.height = size + 'px';
});


// 3. 鼠标悬停在特定元素上时改变样式
const elementsToHighlight = document.querySelectorAll('a, button'); // 选择要高亮的元素

elementsToHighlight.forEach(element => {
  element.addEventListener('mouseover', () => {
    cursorFollower.style.backgroundColor = 'rgba(255, 0, 0, 0.5)'; // 例如,改为红色
    cursorFollower.style.transform = 'translate(-50%, -50%) scale(1.5)'; // 放大
  });

  element.addEventListener('mouseout', () => {
    cursorFollower.style.backgroundColor = 'rgba(0, 0, 0, 0.5)'; // 恢复默认颜色
    cursorFollower.style.transform = 'translate(-50%, -50%) scale(1)'; // 恢复大小
  });
});

使用方法:

  1. 将这段代码复制到你的 HTML 文件的 <head><body> 部分(最好放在 <body> 的末尾)。
  2. 根据需要修改样式,例如 backgroundColorwidthheight 等。
  3. 对于更高级的动画效果,可以考虑使用 CSS 动画或 JavaScript 动画库,例如 GSAP。

代码解释:

  • 创建跟随元素: 创建了一个 div 元素,并设置其样式,使其成为一个圆形。 pointerEvents: 'none' 很重要,它可以防止跟随元素阻挡鼠标点击其他元素。
  • 添加鼠标移动事件监听器: 监听 mousemove 事件,获取鼠标的 xy 坐标。
  • 更新跟随元素位置: 将鼠标的坐标赋值给跟随元素的 lefttop 样式,实现跟随效果。
  • 可选的增强效果: 代码中注释部分提供了一些额外的样式和动画效果,例如过渡、根据鼠标速度改变大小、鼠标悬停在特定元素上时改变样式等。

这段代码提供了一个基本的鼠标跟随效果,并包含了一些常见的增强功能。你可以根据自己的需求进行修改和扩展。

标签:特效,cursorFollower,元素,鼠标,50%,style,跟随
From: https://www.cnblogs.com/ai888/p/18593092

相关文章

  • 写一个网页点击的特效
    <!DOCTYPEhtml><html><head><title>点击特效</title><style>body{background-color:#f0f0f0;}.container{width:500px;height:300px;margin:50pxauto;background-color:#fff;position:relative;/*为了让特......
  • 鸿蒙Next开发实战教程:实现抖音长按快速评论特效
    开篇点题,今天玩点花的。不知道大家有没有发现,抖音上的评论键长按会弹出一排表情框用于快速评论,不过现在鸿蒙原生版的抖音还没有这个功能,今天幽蓝君就小试牛刀,在鸿蒙上做一下这个功能,也是应一位友友的私信要求。不过幽蓝君学艺不精,水平有限,只能模仿个三分像,仅供大家参考。话不多......
  • UNIAPP小程序内Canvas下雪特效,解决蓝色雪花问题
      在小程序的开发中,如何为用户带来与众不同的体验一直是开发者关注的焦点。尤其是在冬季,给小程序加入一个浪漫的下雪特效,不仅能增强用户的互动体验,还能提升整体的应用氛围。今天,我们将介绍如何利用UNIAPP和Canvas技术,在小程序中实现一个炫酷的下雪特效。效果图......
  • 如何阻止:hover、:active等鼠标行为状态的触发?
    要阻止:hover、:active等鼠标行为状态的触发,可以使用以下几种方法:1.CSS的pointer-events属性:这是最常用的方法。将pointer-events属性设置为none可以完全禁用元素的鼠标交互,包括:hover、:active、:focus以及点击事件。.element{pointer-events:none;}优点......
  • canvas根据鼠标点击平滑移动案例
    1.圆形绘制在画布中心绘制一个圆形,并初始化圆形的坐标和半径。2.鼠标点击事件为Canvas添加鼠标点击事件,记录点击的目标坐标。3.移动逻辑使用Math.atan2计算从圆心到点击位置的角度。通过三角函数(Math.cos和Math.sin)逐帧更新圆的坐标,使其沿直线平滑移动。4.动画......
  • jQuery炫酷插入和移动元素动画特效插件
    MagicMove是一款效果非常棒的JQUERY炫酷插入和移动元素动画特效插件。元素的动画和过渡效果在如今的页面设计中对用户的体验至关重要。这款插件可以以非常平滑的方式在指定元素之前插入其它元素,并且当最右边的元素超出容器时会自动下移插入到下一行的第一个位置,整体效果非常不错......
  • 12.7百度图像增强与特效SDK实验
    实验二名称:百度图像增强与特效SDK实验(2024.11.22日完成)一、实验要求  任务一:下载配置百度图像增强与特效的Java相关库及环境(占10%)。    任务二:了解百度图像增强与特效相关功能并进行总结(占20%)。    任务三:完成图像增强GUI相关功能代码并测试调用,要求上传自己的模糊......
  • 鼠标键盘游戏手柄的测试代码
    #include"QtWidgetsApplication2.h"#include<windows.h>#include<QDebug>#include<QVBoxLayout>QtWidgetsApplication2::QtWidgetsApplication2(QWidget*parent):QFrame(parent){ui.setupUi(this); //init();}QtWidget......
  • 云渲染特效广告一秒费用预估是多少?
    ​在计算云渲染特效广告每秒钟的费用时,我们需要综合考虑多个关键因素,包括特效的复杂性、所需的渲染计算能力以及对渲染质量的具体要求。通常情况下,影视特效级别的广告因其场景极其复杂,每帧渲染所需时间较长,从而导致成本相对较高。一般而言,特效广告动画可以分为基础动画、中等复......
  • HS6621Cx 一款低功耗蓝牙SoC芯片应用于键盘、鼠标和遥控器消费
    HS6621Cx是一款功耗优化的真正片上系统(SOC)解决方案,适用于低功耗蓝牙和专有2.4GHz应用。它集成了高性能、低功耗射频收发器,具有蓝牙基带和丰富的外设IO扩展。HS6621Cx还集成了电源管理功能,可提供高效的电源管理。它面向2.4GHz蓝牙低功耗系统、专有2.4GHz系统、人机接口设备(键盘......