【js自定义鼠标样式】【js自定义鼠标动画】

文章目录

  • 前言
  • 一、效果图
  • 二、实现步骤
    • 1. 去除原有鼠标样式
    • 2. 自定义鼠标样式
    • 3. 使用
  • 总结


前言

自定义鼠标形状,自定义鼠标的动画,可以让我们的页面更加有设计感。
当前需求:吧鼠标自定义成一个正方形,鼠标的效果有:和页面的颜色做色差处理,例如当鼠标指到的颜色是白色,在鼠标的这块区域中显示的是黑色,另外,当鼠标指向特定区域时,正方形的鼠标放大三倍,并且以中心为圆点旋转。


一、效果图

鼠标放大之后的效果

在这里插入图片描述

鼠标没放大的效果

在这里插入图片描述

鼠标的色差

在这里插入图片描述在这里插入图片描述

二、实现步骤

1. 去除原有鼠标样式

body {cursor: none;
}

2. 自定义鼠标样式

代码如下(示例):

<div id="mouse" class="mouse"></div>
/* pointer-events: 取消它的鼠标事件,并指向它下面的元素。 */
/* mix-blend-mode: 设置图片元素与父容器背景(黄色)进行混合 */
.mouse {width: 30px;height: 30px;will-change: top, left; position: fixed;left: -200px;z-index: 10020;pointer-events: none;mix-blend-mode: difference;background-color: #fff;display: flex;align-items: center;justify-content: center;
}
/* 这是鼠标中的文字,可以不写 */
.mouse-text::after {content: "VIEW";
}

js如下

// 引用gsap做动画
import gsap from 'gsap';// 自定义鼠标样式
function setMouse() {const mouse = document.querySelector('.mouse');window.addEventListener('mousemove', function(event){    mouse.style.left = event.clientX - mouse.offsetWidth/2 + 'px';mouse.style.top = event.clientY - mouse.offsetHeight/2 + 'px';       })gsap.to("#mouse", {rotation: -30,});
}// 鼠标动画(放大,旋转)
var mouseTl;function setMouseChange1() {mouseTl = gsap.timeline();mouseTl.to("#mouse", {duration: .2,width: "150px",height: "150px"});mouseTl.fromTo("#mouse", {rotation: -30,},{duration: 7,repeat: -1,rotation: 330,ease: "none",});const mouseDiv = document.getElementById("mouse");mouseDiv.setAttribute("class", "mouse mouse-text");
}// (缩小,旋转到原位)
function setMouseChange2() {mouseTl.pause(0);const mouseDiv = document.getElementById("mouse");mouseDiv.setAttribute("class", "mouse");
}

3. 使用

代码如下(示例):

<div @mouseenter="bannerTextEnter" @mouseleave="bannerTextLeave">ANIMATION!</div>
// 鼠标移动到banner文字事件
function bannerTextEnter() {setMouseChange1();
}
function bannerTextLeave() {setMouseChange2()
}

总结

以上就是自定义鼠标样式,自定义鼠标动画的全部了,如有疑问,请评论区留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2662309.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

sysbench

一、sysbench介绍 1、sysbench简介 sysBench是一个模块化的、跨平台、多线程基准测试工具&#xff0c;主要用于评估测试各种不同系统参数下的数据库负载情况。sysbench提供如下测试&#xff1a; &#xff08;1&#xff09;CPU性能 &#xff08;2&#xff09;磁盘IO性能 &…

SourceTree的安装和使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、安装&#xff1a;二、使用步骤1.获取地址2.放入sourceTree 3.点击推送 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 简单讲解一…

Vue - 实现文件导出文件保存下载

1 文件导出&#xff1a;使用XLSX插件 需求背景&#xff1a;纯前端导出&#xff0c;如 在前端页面勾选部分表格数据&#xff0c;点击"导出"按钮导出Excel文件。 实现思路&#xff1a; 1.通过XLSX插件的 XLSX.utils.book_new()方法&#xff0c;创建excel工作蒲对象wb…

既然前端工程师可以进腾讯字节阿里等大厂,为什么要高薪进小公司?

前言 前不久后台有一个粉丝给我留言&#xff1a;为什么很多人参加校招的时候&#xff0c;宁愿低薪也要进大厂&#xff0c;而不选择更高薪的小公司呢&#xff1f; &#xff08;文末有惊喜&#xff01;文末有惊喜&#xff01;&#xff09; 我想了一下&#xff0c;大概是有3个原因…

6130 树的最长路

思路&#xff1a;树的最长路问题可以通过两次 DFS 求解&#xff0c;具体思路如下&#xff1a; 1.第一次 DFS 求树的直径 以任意一个点为起点进行深度优先遍历&#xff08;DFS&#xff09;&#xff0c;找到与该点距离最远的点 u 。 以 u 为起点进行 DFS &#xff0c;找到与 u 距…

win10系统gpu本地部署chatglm3-6b,从0开始安装

开源地址&#xff1a; GitHub - THUDM/ChatGLM3: ChatGLM3 series: Open Bilingual Chat LLMs | 开源双语对话语言模型 前言&#xff1a;ChatGLM2与ChatGLM3区别 ChatGLM2与ChatGLM3模型架构是完全一致的&#xff0c;ChatGLM与后继者结构不同。可见ChatGLM3相对于ChatGLM2没…

LabVIEW在电机噪声与振动探测的应用

LabVIEW在电机噪声与振动探测的应用 硬件部分是电机噪声和振动测试分析系统的基础&#xff0c;主要由三大核心组件构成&#xff1a;高灵敏度振动传感器、先进的信号调理电路和高性能数据采集卡。这些设备协同工作&#xff0c;确保了从电机捕获的噪声和振动信号的准确性和可靠性…

盲盒电商:重塑消费者行为与市场格局

一、什么是盲盒电商&#xff1f; 盲盒电商是一种新型的电子商务模式&#xff0c;它通过将商品隐藏在盲盒中&#xff0c;让消费者在购买时无法知道具体商品&#xff0c;只能通过猜测和期待来体验购物的乐趣。这种模式在年轻人中非常受欢迎&#xff0c;因为它提供了一种全新的购…

labuladong日常刷题-递归魔法 | LeetCode 206反转链表 92反转链表-ii

递归魔法 LeetCode 206 反转链表 2023.12.26 题目链接labuladong讲解[链接] ListNode* reverseList(ListNode* head) {//递归退出条件if(head NULL || head->next NULL)return head;//递归ListNode* last reverseList(head->next);//处理head->next->next …

电脑msvcr120.dll丢失怎样修复,一分钟教会你修复方法

在计算机使用过程中&#xff0c;我们可能会遇到各种问题&#xff0c;其中之一就是“msvcr120.dll丢失”的错误提示。这个错误通常发生在运行某些程序时&#xff0c;由于系统缺少了msvcr120.dll文件&#xff0c;导致程序无法正常运行。那么&#xff0c;什么是msvcr120.dll文件呢…

深入浅出理解转置卷积Conv2DTranspose

温故而知新&#xff0c;可以为师矣&#xff01; 一、参考资料 论文&#xff1a;A guide to convolution arithmetic for deep learning github源码&#xff1a;Convolution arithmetic bilibili视频&#xff1a;转置卷积&#xff08;transposed convolution&#xff09; 转置…

【C++】引用详解

前言 在学习C语言时&#xff0c;我们通常会遇到两个数交换的问题&#xff0c;为了实现这一功能&#xff0c;我们会编写一个经典的Swap函数&#xff0c;如下所示&#xff1a; void Swap(int *a, int *b) {int tmp *a;*a *b;*b tmp; } 然而&#xff0c;这个Swap函数看起来可…

智能监控平台/视频共享融合系统EasyCVR点击通道后页面分页不显示是什么原因?如何解决?

TSINGSEE青犀视频监控汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力&…

leetcode 75. 颜色分类(medium)(优质解法)

链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 代码&#xff1a; class Solution {public void sortColors(int[] nums) {int left-1,rightnums.length,i0;while(i<right){if(nums[i]0){left;swap(nums,left,i);i;}else if(nums…

LLaVA-v1.5-7B:实现先进多模态学习的开源AI

引言 LLaVA-v1.5-7B是一个开源大型多模态模型&#xff08;LMM&#xff09;&#xff0c;它通过结合视觉指令调整&#xff08;Visual Instruction Tuning&#xff09;技术&#xff0c;展示了在多模态理解和生成任务上的卓越性能。该模型特别注重简洁性和数据效率&#xff0c;利用…

一篇文章深入认识微服务SpringCloud和Dubbo的区别

1、SpringCloud是什么 SpringCloud, 基于SpringBoot提供了一套微服务解决方案&#xff0c;包括服务注册与发现&#xff0c;配置中心&#xff0c;全链路监控&#xff0c;服务网关&#xff0c;负载均衡&#xff0c;熔断器等组件&#xff0c;除了基于NetFlix的开源组件做高度抽象…

18B20受到LED灯的干扰处理方法

鱼缸使用了18B20测温&#xff0c;采用PWM控制加热棒加热占空比的方法控制鱼缸温度&#xff0c;使用了最简单的温度差调整PWM宽度的方法&#xff0c;温度差越大PWM占空比越大&#xff0c;从而产生更多的加热时间&#xff0c;当温度接近设定值的时候&#xff0c;PWM逐步缩小&…

limit查询报错问题

分页时候 limit 后面的公式是 (pageNum-1)*pageSize,pageSize 但是在数据库查询时候 当然在.XML中也不能像下面这么写,如果要计算 在业务层或者控制层计算好再传值进来

晋级名单揭晓!一览 2023 冬季波卡黑客松决赛项目

在 2023 冬季波卡黑客松大赛的舞台上&#xff0c;有这样一群怀揣梦想的选手为了开发极具市场潜力的新星项目奋战了无数个日日夜夜。他们集结于此&#xff0c;只为从 0 到 1 开拓出 Web3 创业的发展新路。 走过 7 届赛事征程&#xff0c;波卡黑客松大赛一如既往地作为创业项目“…

Prometheus快速入门实战

介绍 prometheus 受启发于 Google 的 Brogmon 监控系统&#xff08;相似 kubernetes 是从 Brog 系统演变而来&#xff09;。2016 年 5 月继 kubernetes 之后成为第二个加入 CNCF 基金会的项目&#xff0c;同年 6 月正式发布 1.0 版本。2017 年底发布基于全新存储层的 2.0 版本…