JS绘制电流闪烁流动效果

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>电流闪动动效</title><style>.sd1 {display: block;margin: 0 auto;background-color: black;}.sd2 {display: block;margin: 0 auto;background-color: black;}.sd3 {display: block;margin: 0 auto;background-color: black;}</style>
</head>
<body><div class="sd1"></div><div class="sd2"></div><div class="sd3"></div><script>var ele='.sd1';var ele2='.sd2';var ele3='.sd3';sd1(ele);sd1(ele2);sd1(ele3);function sd1(ele) {var width, heightvar step = 0;var canvas = document.createElement('canvas')var ctx = canvas.getContext('2d')var bg = [4, 10, 11]document.querySelector(ele).appendChild(canvas)setTimeout(() => {var timeID = setInterval(() => {pt1.x += 10;if (pt1.x > width - 10) {clearInterval(timeID)}}, 60);}, 1000)var pt1var pt2window.addEventListener('resize', setup)setup()function setup() {canvas.width = width = document.querySelector(ele).clientWidthcanvas.height = height = document.querySelector(ele).clientHeightctx.beginPath();ctx.rect(0, 0, width, height)ctx.fillStyle = `rgba(${bg[0]}, ${bg[1]}, ${bg[2]}, ${1})`ctx.fill()pt1 = { x: -20, y: height / 2 }//闪电起点pt2 = { x: -20, y: height / 2 } //闪电终点}setInterval(animate, 60)function blur(ctx, canvas, amt) {ctx.filter = `blur(${amt}px)`ctx.drawImage(canvas, 0, 0)ctx.filter = 'none'}function fade(ctx, amt, width, height) {ctx.beginPath();ctx.rect(0, 0, width, height)ctx.fillStyle = `rgba(${bg[0]}, ${bg[1]}, ${bg[2]}, ${amt})`ctx.fill()}function animate() {step++blur(ctx, canvas, 1)draw()fade(ctx, 0.1, width, height)}function draw() {var iterations = [pt1, pt2]var newiterations, i, jfor (i = 0; i < 8; i++) {newiterations = [iterations[0]]for (j = 1; j < iterations.length; j++) {newiterations.push(getRandMidpoint(iterations[j - 1], iterations[j], 200 / (i * i + 1)))newiterations.push(iterations[j])}iterations = newiterations.concat([])}ctx.beginPath();ctx.moveTo(iterations[0].x, iterations[0].y);ctx.lineWidth = 2;ctx.strokeStyle = '#04e4c9';for (i = 1; i < iterations.length; i++) {ctx.lineTo(iterations[i].x, iterations[i].y);}ctx.stroke()ctx.closePath()}function getRandMidpoint(pa, pb, range) {var a = Math.atan2(pb.y - pa.y, pb.x - pa.x) + Math.PI / 2var half = { y: (pb.y - pa.y) / 2 + pa.y, x: (pb.x - pa.x) / 2 + pa.x }var offset = Math.random() * range / 3 - range / 6  //这里控制闪电的抖动幅度var ho = {x: Math.cos(a) * offset + half.x,y: Math.sin(a) * offset + half.y}return ho}}</script>
</body>
</html>

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

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

相关文章

618买什么最划算?618买什么东西便宜?必备数码好物清单分享

​只不&#xff0c;马上又到了618购物节咯&#xff0c;数码产品的优惠力度尤为显著&#xff0c;是购买数码产品的绝佳时机。接下来&#xff0c;我将为大家分享几款性价比超高的数码产品&#xff0c;相信总有一款能吸引你的目光。 一、南卡OE MIX开放式蓝牙耳机 在618购物狂欢节…

linux中git的使用

为什么要有git git相当于一个仓库可以让我们更好的去管理我们的代码&#xff0c;实现版本的控制&#xff0c;上传到云端仓库。有了git,就可以实现多人同时开发一个项目&#xff08;每个负责一部分代码&#xff0c;最后都上传到同一个仓库&#xff09;。 git github/gitee 的区…

【Linux】LInux下的进程状态

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章对…

APP UI自动化测试,思路全总结在这里了

首先想要说明一下&#xff0c;APP自动化测试可能很多公司不用&#xff0c;但也是大部分自动化测试工程师、高级测试工程师岗位招聘信息上要求的&#xff0c;所以为了更好的待遇&#xff0c;我们还是需要花时间去掌握的&#xff0c;毕竟谁也不会跟钱过不去。 接下来&#xff0c…

新书速览|数字身份认证技术与实践

本书不仅仅讲述标准解决方案以及相关理论&#xff0c;更重要的是以丰富的案例&#xff0c;讲透如何将这些理论应用到具体实际场景。 本书内容 《数字身份认证技术与实践》内容涵盖身份认证的基础理论&#xff0c;包括身份认证与授权的区别、常见的认证方式以及关键技术和协议&…

代码随想录算法训练营33期 第五十天 | 188.买卖股票的最佳时机IV

dp[i][0] 不操作&#xff1b;d[i][1]第一次开始持有股票 //dp[i]当前天i的价值情况&#xff0c;dp[i][0]表示不操作的最大价值&#xff0c;dp[i][1]在当前天第一次持有的最大价值&#xff0c;dp[i][2]在当前天第一次卖出的最大价值, dp[i][3]在当前天第二次持有的最大价值&am…

苍穹外卖学习笔记(8.用户端历史订单模块,商家端订单管理模块)

目录 一、商家端订单管理模块1、查看历史订单2、查询订单详情3、取消订单4、再来一单5、代码开发6、测试 二、用户端历史订单模块1、订单搜索2、各个状态的订单数量统计3、查询订单详情4、接单5、拒单6、取消订单7、派送订单8、完成订单9、代码开发10、测试 三、校验收货地址是…

matlab学习005-利用matlab设计滤波器

目录 一&#xff0c;含有多个频率成分的三角信号 1&#xff0c;以采样频率fs20KHz对信号采样&#xff0c; 画出信号的波形&#xff1b; 1&#xff09;前期基础 2&#xff09;波形图 3&#xff09;代码 2&#xff0c;选取合适的采样点数&#xff0c;利用DFT分析信号的…

Python静态资源库之webassets使用详解

概要 Python webassets库是一个用于管理静态资源的工具,如CSS、JavaScript等,帮助开发者更有效地管理和优化网站的静态文件。本文将介绍如何安装和使用Python webassets库,以及它的特性、基本功能、高级功能、实际应用场景和总结部分。 安装 首先,需要安装Python webasse…

Mysql索引详解(索引分类)

文章目录 概述索引对查询速度的影响索引的优缺点索引类型一级索引和二级索引的区别MySQL 回表联合索引&#xff08;最左前缀原则主键索引和唯一索引的区别BTree索引和Hash索引的区别 覆盖索引索引下推加索引能够提升查询效率原因MySQL 索引结构采用 B树原因索引失效的场景MySQL…

知识图谱嵌入领域的重要研究:编辑基于语言模型的知识图谱嵌入

今天&#xff0c;向大家介绍一篇在知识图谱嵌入领域具有重要意义的研究论文——Editing Language Model-based Knowledge Graph Embeddings。这项工作由浙江大学和腾讯公司的研究人员联合完成&#xff0c;为我们在动态更新知识图谱嵌入方面提供了新的视角和方法。 研究背景 在…

kubernetes中的附件组件Metrics-server与hpa资源实现对pod的自动扩容和缩容

一、概述 Metrics-Server组件目的&#xff1a;获取集群中pod、节点等负载信息&#xff1b; hpa资源目的&#xff1a;通过metrics-server获取的pod负载信息&#xff0c;自动伸缩创建pod&#xff1b; 二、安装部署 Metrics-Server组件 安装目的&#xff0c;就是给k8s集群安装top…

Win 下 ncnn 编译运行

ncnn 官网上编译的过程比较详细&#xff0c;本文主要记录编译、运行过程中遇到的问题&#xff0c;希望可以帮到大家。 我的环境是 Win10 系统&#xff0c;VS 2022。 编译 先使用如下命令获取 ncnn 代码库&#xff1a; git clone https://github.com/Tencent/ncnn.git cd n…

【库函数】Linux下动态库.so和静态库.a的生成和使用

目录 &#x1f31e;1. Linux下静态库和动态库的基本概念 &#x1f31e;2. 动态库 &#x1f30a;2.1 动态库如何生成 &#x1f30d;2.1.1 文件详情 &#x1f30d;2.1.2 编译生成动态库 &#x1f30a;2.2 动态库如何使用 &#x1f30d;2.2.1 案例 &#x1f30d;2.2.2 动态…

速卖通自养号测评:如何规避安全风险?

对于初涉电商领域的新卖家而言&#xff0c;进行销量测评显得尤为关键。由于速卖通新店铺往往难以获得平台活动的支持&#xff0c;流量也相对匮乏&#xff0c;因此&#xff0c;开店的首要任务便是进行测评&#xff0c;通过积累一定的评论和销售数据。 测评的益处颇多&#xff0…

【数据结构与算法】8.二叉树的基本概念|前序遍历|中序遍历|后序遍历

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更…

4.3网安学习第四阶段第三周回顾(个人学习记录使用)

本周重点 ①Java入门基础 ②Java方法入门 ③Java面向对象(**重点) ④Java的Maven构建项目工具 ⑤Java其他操作补充 ⑥Java序列化和反序列化 ⑦Url 的DNS 审计链(**难点) ⑧Springboot和前端数据分离(主流使用) ⑨Common Collections(CC链漏洞) 本周主要内容 ①Java入…

使用 Flutter 打造引人入胜的休闲游戏体验

作者 / Zoey Fan 去年&#xff0c;Flutter 休闲游戏工具包进行了一次重大更新。近期在旧金山举办的游戏开发者大会 (GDC) 上&#xff0c;Flutter 首次亮相。GDC 是游戏行业的顶级专业盛会&#xff0c;致力于帮助游戏开发者不断提升开发技能。欢迎您继续阅读&#xff0c;了解开发…

01、创建型-单例模式--只有一个实例

文章目录 前言一、基本介绍1.1 什么是单例模式1.2 为什么要用单例模式1.3 应用场景1.4 单例优缺点 二、单例模式的实现方式2.1 饿汉式单例2.1.1 静态变量方式2.1.2 静态代码块 2.2 懒汉式单例2.2.1 懒汉式单例2.2.2 懒汉式优化①-线程安全2.2.2 懒汉式优化②-双重检查锁2.2.3 懒…

智能人事管理系统:全球团队高效管理之道

在全球化背景下&#xff0c;企业面临着管理分布在各地的员工队伍的挑战。为了确保人力资源管理的高效运作&#xff0c;实现跨地域、跨时区的协同工作&#xff0c;智能化人事管理系统应运而生。本文将重点介绍一款功能全面、智能化的人事管理系统都具备哪些功能&#xff0c;可以…