Canvas粒子动画:打造炫酷鼠标追踪效果

粒子动画效果

使用Canvas创建粒子动画效果,粒子会跟随鼠标移动或形成特定图案。以下代码实现了一个基础的粒子系统:

const canvas = document.getElementById('particleCanvas'); const ctx = canvas.getContext('2d'); canvas.width = window.innerWidth; canvas.height = window.innerHeight; const particles = []; for (let i = 0; i < 100; i++) { particles.push({ x: Math.random() * canvas.width, y: Math.random() * canvas.height, size: Math.random() * 5 + 1, speedX: Math.random() * 3 - 1.5, speedY: Math.random() * 3 - 1.5 }); } function animate() { ctx.clearRect(0, 0, canvas.width, canvas.height); particles.forEach(particle => { particle.x += particle.speedX; particle.y += particle.speedY; if (particle.x < 0 || particle.x > canvas.width) particle.speedX *= -1; if (particle.y < 0 || particle.y > canvas.height) particle.speedY *= -1; ctx.beginPath(); ctx.arc(particle.x, particle.y, particle.size, 0, Math.PI * 2); ctx.fillStyle = 'rgba(100, 200, 255, 0.8)'; ctx.fill(); }); requestAnimationFrame(animate); } animate();

文字渐变效果

实现文字颜色渐变和动画效果,可以通过CSS配合JS完成:

const textElement = document.getElementById('animatedText'); const colors = ['#ff3366', '#20b2aa', '#9370db', '#32cd32']; let currentIndex = 0; function changeColor() { textElement.style.color = colors[currentIndex]; currentIndex = (currentIndex + 1) % colors.length; const scale = 1 + Math.sin(Date.now() / 500) * 0.1; textElement.style.transform = `scale(${scale})`; } setInterval(changeColor, 1000);

页面滚动视差

创建具有深度感的滚动视差效果:

window.addEventListener('scroll', () => { const scrollPosition = window.pageYOffset; const parallaxElements = document.querySelectorAll('.parallax'); parallaxElements.forEach(element => { const speed = parseFloat(element.dataset.speed); const yPos = -(scrollPosition * speed); element.style.transform = `translate3d(0, ${yPos}px, 0)`; }); });

鼠标跟随光环

实现一个跟随鼠标移动的光环效果:

document.addEventListener('mousemove', (e) => { const halo = document.getElementById('mouseHalo'); halo.style.left = `${e.clientX - 50}px`; halo.style.top = `${e.clientY - 50}px`; const size = 100 + Math.sin(Date.now() / 200) * 20; halo.style.width = `${size}px`; halo.style.height = `${size}px`; halo.style.opacity = 0.7 + Math.sin(Date.now() / 300) * 0.3; });

3D卡片翻转

使用CSS 3D变换和JS实现卡片翻转效果:

const cards = document.querySelectorAll('.flip-card'); cards.forEach(card => { card.addEventListener('click', () => { card.classList.toggle('flipped'); }); });

配合CSS:

.flip-card { transition: transform 0.6s; transform-style: preserve-3d; } .flip-card.flipped { transform: rotateY(180deg); }

波浪动画效果

使用SVG和JS创建波浪动画:

const wave = document.getElementById('wave'); let offset = 0; function animateWave() { offset += 0.05; const pathData = `M0,100 Q25,130 50,100 T100,100 T150,100 T200,100 T250,100 T300,100 T350,100 T400,100 T450,100 T500,100 V200 H0 Z`; wave.setAttribute('d', pathData); requestAnimationFrame(animateWave); } animateWave();

烟花爆炸效果

Canvas实现的烟花爆炸动画:

class Firework { constructor(x, y, targetX, targetY) { this.x = x; this.y = y; this.targetX = targetX; this.targetY = targetY; this.particles = []; this.alive = true; } update() { // 更新烟花位置和粒子逻辑 } draw(ctx) { // 绘制烟花和粒子 } } const fireworks = []; document.addEventListener('click', (e) => { fireworks.push(new Firework( canvas.width/2, canvas.height, e.clientX, e.clientY )); });

背景星空效果

创建随机闪烁的星空背景:

function createStars() { const stars = []; for (let i = 0; i < 200; i++) { stars.push({ x: Math.random() * canvas.width, y: Math.random() * canvas.height, size: Math.random() * 1.5, opacity: Math.random(), speed: Math.random() * 0.05 }); } return stars; } function drawStars(ctx, stars) { stars.forEach(star => { star.opacity += (Math.random() - 0.5) * star.speed; star.opacity = Math.max(0, Math.min(1, star.opacity)); ctx.beginPath(); ctx.arc(star.x, star.y, star.size, 0, Math.PI * 2); ctx.fillStyle = `rgba(255, 255, 255, ${star.opacity})`; ctx.fill(); }); }

页面过渡动画

实现页面切换时的平滑过渡:

function pageTransition(outPage, inPage) { outPage.style.opacity = '0'; outPage.style.transform = 'translateX(-50px)'; outPage.style.transition = 'all 0.5s ease'; setTimeout(() => { outPage.style.display = 'none'; inPage.style.display = 'block'; setTimeout(() => { inPage.style.opacity = '1'; inPage.style.transform = 'translateX(0)'; }, 50); }, 500); }

编程语言C++m.renkangtang.net++c语言的魅力
编程语言C++m.pengdongny.com++c语言的魅力
编程语言C++m.sy-zjzx.com++c语言的魅力
编程语言C++m.spsrshop.com++c语言的魅力
编程语言C++m.5lue.com++c语言的魅力
编程语言C++m.ynlzz.com++c语言的魅力
编程语言C++m.hudongc.com++c语言的魅力
编程语言C++m.fmzhenxi.com++c语言的魅力
编程语言C++m.shangai.net++c语言的魅力
编程语言C++m.scw023.com++c语言的魅力

编程语言C++m.hengshuidongtong.com++c语言的魅力
编程语言C++m.meta12cLoud.com++c语言的魅力
编程语言C++m.shuangving.com++c语言的魅力
编程语言C++wab.hengshuidongtong.com++c语言的魅力
编程语言C++wab.meta12cLoud.com++c语言的魅力
编程语言C++wab.shuangving.com++c语言的魅力

编程语言C++moblie.songfudaojia.com++c语言的魅力
编程语言C++m.carandfan.com++c语言的魅力
编程语言C++wap.tlxgpsgs.com++c语言的魅力
编程语言C++blog.songfudaojia.com++c语言的魅力
编程语言C++moblie.carandfan.com++c语言的魅力
编程语言C++m.tlxgpsgs.com++c语言的魅力
编程语言C++wap.songfudaojia.com++c语言的魅力
编程语言C++blog.carandfan.com++c语言的魅力
编程语言C++moblie.tlxgpsgs.com++c语言的魅力
编程语言C++m.songfudaojia.com++c语言的魅力
编程语言C++wap.carandfan.com++c语言的魅力
编程语言C++blog.tlxgpsgs.com++c语言的魅力
编程语言C++moblie.songfudaojia.com++c语言的魅力
编程语言C++m.carandfan.com++c语言的魅力
编程语言C++wap.tlxgpsgs.com++c语言的魅力
————————————————
版权声明:本文为CSDN博主「e***9857」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/2509_94095094/article/details/157142302

打字机效果

模拟打字机逐个显示文字的效果:

function typeWriter(element, text, speed) { let i = 0; function typing() { if (i < text.length) { element.innerHTML += text.charAt(i); i++; setTimeout(typing, speed); } } typing(); } typeWriter(document.getElementById('typeText'), 'Hello, this is a typing effect!', 100);

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

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

相关文章

SSM学生综合考评系统b8vlm(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面

系统程序文件列表系统项目功能&#xff1a;学生,课程成绩,德育分数,素质扩展分数,综合测评成绩,奖学金信息,奖学金类型,奖学金评定信息,奖学金公示信息,举报信息,申诉信息,学生互评SSM学生综合考评系统开题报告一、课题研究背景与意义&#xff08;一&#xff09;研究背景在高校…

PHP8.4重磅更新:性能飙升新特性

PHP 8.4 的新特性PHP 8.4 预计于 2024 年 11 月发布&#xff0c;目前处于开发阶段。以下是已公布或计划中的主要更新内容&#xff1a;JIT 改进 PHP 8.4 将进一步优化 JIT&#xff08;Just-In-Time&#xff09;编译器&#xff0c;提升性能表现。新的优化策略将针对特定代码模式进…

SSM学生综合素质评价系统wy345(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面

系统程序文件列表系统项目功能&#xff1a;学生,家长,教师,学生活动,学生成绩,综合成绩,异议申报,学生品德,家长留言,学生留言SSM学生综合素质评价系统开题报告一、课题研究背景与意义&#xff08;一&#xff09;研究背景当前高校及中小学的学生评价体系正从单一成绩导向转向综…

低代码编程软件选型指南:适配业务需求的决策方案

在数字化转型提速的背景下&#xff0c;企业对应用开发的效率与灵活性需求日益迫切。低代码编程软件凭借可视化开发、快速迭代的核心优势&#xff0c;成为破解传统开发周期长、技术门槛高、成本高昂等痛点的关键路径。然而&#xff0c;市场上低代码产品品类繁杂&#xff0c;功能…

Substance Painter 纹理烘焙:法线贴图与 AO 贴图制作指南

在次世代PBR纹理工作流中&#xff0c;Substance Painter&#xff08;SP&#xff09;的法线贴图与AO贴图烘焙是提升模型质感的核心步骤。法线贴图能让低模呈现高模的凹凸细节&#xff0c;AO贴图可模拟缝隙阴影增强层次感&#xff0c;二者结合是实现逼真视觉效果的关键。本文将拆…

PHP vs Python:Web开发与多面手的终极对决

语言类型与设计理念PHP是一种专为Web开发设计的脚本语言&#xff0c;早期主要嵌入HTML中实现动态网页功能&#xff0c;语法设计偏向于快速解决Web问题。Python是一种通用编程语言&#xff0c;强调代码可读性和简洁性&#xff0c;适用于Web开发、数据分析、人工智能等多个领域。…

为什么MapReduce会被硅谷一线公司淘汰?

你好&#xff0c;我是蔡元楠。 今天我要与你分享的主题是“为什么 MapReduce 会被硅谷一线公司淘汰”。 我有幸几次与来 Google 参观的同行进行交流&#xff0c;当谈起数据处理技术时&#xff0c;他们总是试图打探 MapReduce 方面的经验。 这一点让我颇感惊讶&#xff0c;因…

前两天去杭州,短短2天,密集见了7波创业者

前两天去杭州&#xff0c;短短2天&#xff0c;密集见了7波创业者&#xff0c;但密度非常高&#xff0c;高到让我有点跟不上节奏。几乎每一站&#xff0c;都是创业者;每一顿饭&#xff0c;聊的都是项目、产品、落地。我能明显感觉到&#xff1a;杭州的创业者多&#xff0c;而且务…

C++ 纯虚函数 — 抽象接口

前言&#xff1a;C中纯虚函数是一个重要的特性、方法&#xff0c;若正确使用能够优化代码结构&#xff0c;提升层次性&#xff0c;增强可阅读性。在之前的文章中&#xff08;C 虚函数 解析指南-CSDN博客&#xff09;&#xff0c;一笔带过了纯虚函数的介绍&#xff0c;本文将对纯…

大数据领域数据血缘:应对数据复杂性的利器

数据血缘:大数据世界的“家族树”,帮你理清数据的来龙去脉 关键词 数据血缘、大数据复杂性、元数据管理、数据 lineage、数据治理、数据追溯、数据可靠性 摘要 在大数据时代,企业的数据就像一棵枝繁叶茂的大树:根须深入业务系统、日志、第三方等各类数据源,树干是ETL、…

全网最细,电商平台项目测试常遇bug+测试点(汇总)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、电商项目常遇b…

参考文献在哪里找:实用查找方法及资源推荐

做科研的第一道坎&#xff0c;往往不是做实验&#xff0c;也不是写论文&#xff0c;而是——找文献。 很多新手科研小白会陷入一个怪圈&#xff1a;在知网、Google Scholar 上不断换关键词&#xff0c;结果要么信息过载&#xff0c;要么完全抓不到重点。今天分享几个长期使用的…

书籍-凯撒《高卢战记》

凯撒《高卢战记》详细介绍 书籍基本信息 书名&#xff1a;高卢战记&#xff08;Commentarii de Bello Gallico&#xff0c;意为"关于高卢战争的评论"&#xff09; 作者&#xff1a;凯撒&#xff08;Gaius Julius Caesar&#xff0c;公元前100年-前44年&#xff09; 成…

2026 年 1 月电动雨棚厂家推荐排行榜:遥控/伸缩/推拉/定制/悬空/仓库/篮球场雨棚,创新智能与坚固耐用品质之选 - 企业推荐官【官方】

2026 年 1 月电动雨棚厂家推荐排行榜:遥控/伸缩/推拉/定制/悬空/仓库/篮球场雨棚,创新智能与坚固耐用品质之选 随着城市化进程的加速和工商业态多元化发展,户外空间的灵活利用与保护需求日益凸显。雨棚,尤其是集成…

【快速EI检索 | 广州大学主办丨EI稳定检索 | 征稿范围广 | 学生优惠、团队优惠、学生友好】2026年人工智能与数字服务国际学术会议(ICADS 2026)

2026年人工智能与数字服务国际学术会议&#xff08;ICADS 2026&#xff09; 2026 International Conference on Artificial Intelligence and Digital Services (ICADS 2026) 2026年2月6日&#xff08;周五&#xff09;&#xff5c;线上召开 大会官网&#xff1a;www.ic-icad…

基于非对称纳什谈判的多微网电能共享运行优化策略Matlab代码

✅作者简介&#xff1a;热爱数据处理、建模、算法设计的Matlab仿真开发者。&#x1f34e;更多Matlab代码及仿真咨询内容点击 &#x1f517;&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知。&#x1f525; 内容介绍推进可再生能源高效利用,实现电力系统…

架构之DID(Design-Implement-Deploy)方法论

架构之DID方法论&#xff1a;设计-实施-部署 概述 DID&#xff08;Design-Implement-Deploy&#xff09;是一种架构可扩展性方法论&#xff0c;旨在以最经济有效的方式保证系统的可扩展性。通过在系统生命周期的不同阶段采用不同的容量规划策略&#xff0c;实现资源利用的最优化…

Uniapp——苹果IOS离线打自定义基座教程

文章目录概要1.官方下载SDK插件基座源码&#xff1b;2.项目概要讲解&#xff1b;小结概要 提示&#xff1a;为了节省云打包费用使用离线打包 1.官方下载SDK插件基座源码&#xff1b; 提示&#xff1a;这里可以添加技术整体架构 https://nativesupport.dcloud.net.cn/AppDocs/d…

【快速EI检索 | 211高校武汉理工大学作为支持单位!主讲嘉宾已确定 | 本届会议已成功通过ACM出版!稳定EI检索】2026年人工智能与控制国际学术会议(CAIC 2026)

2026年人工智能与控制国际学术会议&#xff08;CAIC 2026&#xff09; 2026 International Conference on Artificial Intelligence and Control(CAIC 2026) 2026年2月6日-8日&#xff5c;中国-三亚 大会官网&#xff1a;https://www.iccaic.net/ 截稿时间&#xff1a;见官网…

软考老金的五篇论文指导如何改变我的备考轨迹

备考高项前&#xff0c;我最怕的就是论文。作为一个普通企业的行政人员&#xff0c;我哪有什么"大型IT项目管理经验"&#xff1f;但跟着金老师学完五篇论文作业后&#xff0c;我不仅不怕了&#xff0c;还在考场上写出了57分的论文&#xff01;一、五篇作业&#xff1…