javascript鼠标跟随星星动画特效

news2024/9/20 14:43:49

鼠标跟随星星动画特效icon-default.png?t=N7T8https://www.bootstrapmb.com/item/14781

 

创建一个鼠标跟随的星星动画特效在JavaScript中通常涉及到HTML、CSS和JavaScript的结合。以下是一个简单的步骤说明和示例代码,用于创建一个基本的鼠标跟随星星动画:

HTML (index.html)

 
html<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>鼠标跟随星星动画</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="stars-container">
<!-- 星星将在这里动态生成 -->
</div>

<script src="script.js"></script>
</body>
</html>

CSS (styles.css)

 
css#stars-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
pointer-events: none; /* 防止星星阻止鼠标事件 */
}

.star {
position: absolute;
width: 20px;
height: 20px;
background: yellow;
border-radius: 50%;
opacity: 0.5;
transition: opacity 0.3s ease-in-out;
}

/* 可以添加更多CSS样式来美化星星,如阴影、大小变化等 */

JavaScript (script.js)

 
javascriptconst starsContainer = document.getElementById('stars-container');
let stars = [];

// 初始化一定数量的星星
function initStars(numStars) {
for (let i = 0; i < numStars; i++) {
const star = document.createElement('div');
star.classList.add('star');

// 随机位置
star.style.top = `${Math.random() * 100}vh`;
star.style.left = `${Math.random() * 100}vw`;

// 添加到容器中
starsContainer.appendChild(star);

// 添加到星星数组中
stars.push(star);
}
}

// 跟随鼠标移动
function followMouse(e) {
const x = e.clientX / window.innerWidth * 100;
const y = e.clientY / window.innerHeight * 100;

stars.forEach(star => {
const dx = x - parseFloat(star.style.left);
const dy = y - parseFloat(star.style.top);

// 使用简单的物理公式来模拟跟随效果
const speed = 0.02; // 可以调整这个值来改变跟随速度
const tx = star.style.left = `${star.style.left.slice(0, -2) + (dx * speed)}vw`;
const ty = star.style.top = `${star.style.top.slice(0, -2) + (dy * speed)}vh`;

// 可以添加额外的动画效果,如闪烁、大小变化等
});
}

// 监听鼠标移动事件
document.addEventListener('mousemove', followMouse);

// 初始化星星
initStars(100); // 可以调整这个值来改变星星的数量

在这个例子中,我们首先定义了一个包含星星的容器,然后在JavaScript中动态地创建并添加了星星元素。我们使用CSS来设置星星的样式,如大小、颜色和形状。然后,我们使用JavaScript来监听鼠标移动事件,并根据鼠标的位置来更新星星的位置,从而创建出一个跟随鼠标的动画效果。

请注意,这只是一个基本的示例,你可以根据自己的需求来添加更多的功能和样式,如星星的闪烁、旋转、大小变化等。

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

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

相关文章

从理论到实践:如何用 TDengine 打造完美数据模型​

在用 TDengine 进行数据建模之前&#xff0c;我们需要回答两个关键问题&#xff1a;建模的目标用户是谁&#xff1f;他们的具体需求是什么&#xff1f;在一个典型的时序数据管理方案中&#xff0c;数据采集和数据应用是两个主要环节。如下图所示&#xff1a; 对于数据采集工程师…

大数据-44 Redis 慢查询日志 监视器 慢查询测试学习

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

基于Java+SpringMvc+Vue技术的慈善捐赠平台设计与实现(源码+LW+部署讲解)

项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功以及课程答疑&#xff01; 软件开发环境及开发工具&#xff1a; 操作系统&#xff1a;Windows 10、Windows 7、Windows 8 开发语言&#xff1a;java 前端技术&#xff1a;JavaScript、VUE.j…

好玩新游:辛特堡传说中文免费下载,Dungeons of Hinterberg 游戏分享

在游戏中&#xff0c;你将扮演Luisa&#xff0c;一个被现实生活拖得疲惫不堪的法律实习生。她决定暂时远离快节奏的公司生活&#xff0c;踏上征服辛特堡地下城的旅程…她会在第一天就被击退&#xff0c;还是能成为顶级猎魔人呢&#xff1f;只有一个办法可以找到答案... 体验刺激…

MATLAB练习题——矩阵(2)

逻辑运算 a [5 0.2 0 -8 -0.7 ]&#xff0c;在进行逻辑运算时&#xff0c;a 相当于什么样的逻辑量。 相当于 a[1 1 0 1 1] 角度运算 在 sin(x)运算中&#xff0c;x 是角度还是弧度&#xff1f; 在 sin(x)运算中&#xff0c;x 是弧度&#xff0c;MATLAB 规定所有…

nfs服务器+配置autofs自动挂载

在服务端 在客户端 [rootlocalhost ~]# showmount -e 192.168.231.129 Export list for 192.168.231.129: /data 192.168.231.130 配置autofs自动挂载 在一般 NFS 文件系统的使用过程中&#xff0c;如果客户端要使用服务端所提供的文件系统&#xff0c;可以在 /etc/rc.d/rc.l…

AI智能绘画对话系统搭建部署,文字转视频,文案创作系统

目录 前言&#xff1a; 一、AI创作系统 二、AI系统功能 三、系统技术架构 五、如何搭建部署 总结 前言&#xff1a; AI创作系统&#xff0c;涵盖文案创作、绘画和对话系统。 一、AI创作系统 AI创作系统是一种利用人工智能技术&#xff0c;辅助或完全自动化内容创作过程…

Apache DolphinScheduler 3.2.2 版本正式发布!

Apache DolphinScheduler 3.2.2 版本正式发布&#xff01; 近日&#xff0c;Apache DolphinScheduler 发布了 3.2.2 版本。此版本主要基于 3.2.1 版本进行了 bug 修复&#xff0c;新增若干特性&#xff0c;并进行了众多改进和 Bug 修复&#xff0c;以及文档修复等。 &#x1…

培训第十二天(samba共享与DNS域名解析)

上午 samba与nfs都是用于局域网 1、安装samba软件 &#xff08;1&#xff09;关闭防火墙与selinux [rootsamba ~]# systemctl stop firewalld[rootsamba ~]# setenforce 0[rootsamba ~]# systemctl disable firewalld[rootsamba ~]# vim /etc/selinux/config &#xff08;…

SDWAN跨境网络专线如何帮助企业运营社交媒体平台如Facebook、Twitter等

在全球化日益加深的今天&#xff0c;越来越多的企业选择通过社交媒体平台如Facebook、Twitter等进行品牌推广和引流。然而&#xff0c;跨境访问这些平台时&#xff0c;网络延迟、连接不稳定、IP地址被封禁等问题常常困扰着企业&#xff0c;严重影响了其运营效率和推广效果。为了…

STM32智能楼宇管理系统教程

目录 引言环境准备智能楼宇管理系统基础代码实现&#xff1a;实现智能楼宇管理系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;楼宇管理与优化问题解决方案与优化收尾与总结 1. 引言 智能楼宇管理系统通…

杰发科技Bootloader(1)—— Keil配置地址

IAP方式 BootLoader方式 UDSBoot方式 AC7801的地址分配 用户空间的的地址从8000000开始分配&#xff0c;大小是64页&#xff0c;即128K。 RAM地址从20000000开始 基于UDSboot调试-Boot 烧录Boot之后&#xff0c;ATClinkTool无法连接 用keil查看内存&#xff0c;地址到8005388…

spring部分源码分析及Bean的生命周期理解

前言&#xff1a; 本文整体框架是通过refresh方法这个入口进入分析&#xff1a;分析IOC容器的创建及一些Bean的生命周期的知识点&#xff0c;写得确实一般般&#xff0c;感觉自己的有些前置知识并没有理解的很到位&#xff0c;所以&#xff0c;这篇文件先记录一下&#xff0c;…

go语言day14 bufio包 ioutil包

Golang-100-Days/Day16-20(Go语言基础进阶)/day16_file操作.md at master rubyhan1314/Golang-100-Days GitHub 一、bufio包 读写文件 1&#xff09; bufio包下的Reader类实现了Read()方法和Write()方法 2&#xff09;和io包相比&#xff0c;虽然都是在读写文件&#xff0c;…

【SQL】字段筛选出含有某些关键词,模糊匹配LIKE的用法

如果我们要查询数据库中&#xff0c;某个字段含有一些文字&#xff0c;例如查名字的时候&#xff0c;查询开头含有某些姓氏的人&#xff0c;或者查询以某些符号结尾的文字&#xff0c;都可以用模糊匹配来查询字段&#xff0c;WHERE子句LIKE 的操作符搜索。 以下是一些使用示例…

开源XDR-SIEM一体化平台 Wazuh (2)安装

简介 安装 Wazuh indexer 可以根据具体需求和环境选择多种方法。可以通过脚本安装&#xff0c;也可以通过yum/apt等安装工具进行安装&#xff0c;详细安装方式可以参考Wazuh documentation官方文档。 即除了上述的安装方式外&#xff0c;还可以通过集成式的镜像进行运行。可以…

Mac 中安装内网穿透工具ngrok

ngrok 是什么&#xff1f; Ngrok 是一个网络工具&#xff0c;主要用于在网络中创建从公共互联网到私有或本地网络中运行的web服务的安全隧道。它充当了一个反向代理&#xff0c;允许外部用户通过公共可访问的URL访问位于防火墙或私有网络中的web应用程序或服务。Ngrok 特别适用…

Mindspore框架循环神经网络RNN模型实现情感分类|(二)词向量

Mindspore框架循环神经网络RNN模型实现情感分类 Mindspore框架循环神经网络RNN模型实现情感分类|&#xff08;一&#xff09;IMDB影评数据集准备 Mindspore框架循环神经网络RNN模型实现情感分类|&#xff08;二&#xff09;预训练词向量 Mindspore框架循环神经网络RNN模型实现…

大模型额外篇章三:vercel搭建openai中转服务器

文章目录 一、起因和注意1)起因2)注意二、实现方法(原理:透传)1)nginx方案2)node服务3)纯 js 方案4)选择国外的域名服务商(DNS 解析路径缩短,建议方案国外提供 CDN 云服务商结合自建云服务业务做负载均衡)三、实践(vercel部署OpenAI代理服务器)四、测试搭建的Ope…

UE4 自动换行——按排序关键字1.2.3.

要自动换行的字符串举例&#xff1a;“有效节点为:1.demo-worker-02 2.demo-worker-01 3.demo-master-01” 1.获取相邻两位字符串&#xff0c;组合后与关键字比较 2.当两位字符串与关键字相等&#xff0c;附加一次换行 3.其他例如 1)2)3)、(1)(2)(3)、<1><2><…