8款前端特效动画及源码分享

3D立体数字时钟滚动特效

基于Splitting制作的一款3D立体数字时钟滚动特效,创意感满满,可以下载使用。

预览获取
在这里插入图片描述
核心代码

  <div class="clock"><span class="cog hours tens" data-splitting>0123456789</span><span class="cog hours" data-splitting>0123456789</span><span class="colon">:</span><span class="cog minutes tens" data-splitting>0123456789</span><span class="cog minutes" data-splitting>0123456789</span><span class="colon">:</span><span class="cog seconds tens" data-splitting>0123456789</span><span class="cog seconds" data-splitting>0123456789</span></div>

米字格手写文字练习代码

基于Canvas实现的一款米字手写贴,你可以自由的书写你喜欢的文字,同时还支持清除等功能,让你在娱乐中提升自己。

预览获取

在这里插入图片描述
核心代码

<body><!--利用canvas绘画简单田字格--><canvas id="canvas"></canvas><div id="coltroller"><div id="clear_btn" class="op_btn" onClick="clean()">清 除</div><div class="clearfix"></div></div><script src="js/canvas.js"></script>
</body>

自定义球体加载特效

是一款可自定义的加载动画,可以通过控制项改变背景颜色、调节弹起的速度快慢、以及弹起的弧度大小等

预览获取

在这里插入图片描述
核心代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>自定义球体加载特效</title><link rel="stylesheet" href="css/style.css">
</head>
<body><script src="js/three.min.js"></script><script src="js/OrbitControls.js"></script><script src="js/dat.gui.js"></script><script src="js/index.js"></script>
</body>
</html>

3D旋转变换进度条动画

非常有个性的一款3D加载动画特效,由点与线的运动构成带有3D立体动画视觉效果,可适用于网页的加载动画。

预览获取

在这里插入图片描述
核心代码

<body><div class="spinner"><div class="spin"><div class="branch"></div><div class="branch"></div><div class="branch"></div></div></div><div class="spinner"><div class="spin"><div class="branch"></div><div class="branch"></div><div class="branch"></div></div></div>... +14</body>

粒子流动爱心动画特效

基于Canvas实现的一款爱心粒子流动特效,极具观赏性。

预览获取

在这里插入图片描述
核心代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>粒子流动爱心形状动画特效</title><link rel="stylesheet" href="css/style.css">
</head>
<body><canvas id="canvas"></canvas><script src='js/blgjlm.js'></script><script src="js/index.js"></script>
</body>
</html>

气泡浮动上升特效

气泡浮动上升特效是基于Css和Js制作的一款上升动画特效,实现不同大小多种颜色带透明度的泡泡向上浮动画面。

预览获取

在这里插入图片描述

核心代码

<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>气泡浮动上升特效</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="bubbles"><div class="bubble"></div><div class="bubble"></div>... + 398</div><script  src="js/script.js"></script>
</body>
</html>

鼠标移动圆点粒子跟随特效

观赏性非常强的一款HTML5 Canvas鼠标移动圆点粒子跟随动画特效,鼠标移动圆点粒子出现并跟随鼠标指针移动,不动时圆点粒子则渐渐消失。

预览获取

在这里插入图片描述
核心代码

<body><h1>别害羞, 把鼠标挪过来!</h1><canvas></canvas><script>// 创建Canvas对象及设置宽高var canvas = document.querySelector('canvas');canvas.height = window.innerHeight;canvas.width = window.innerWidth;c = canvas.getContext('2d');// 监听窗口大小变化window.addEventListener('resize', function () {canvas.height = window.innerHeight;canvas.width = window.innerWidth;initCanvas();})// 设置鼠标位置var mouse = {x: undefined,y: undefined}// 监听鼠标移动事件window.addEventListener('mousemove',function (event) {mouse.x = event.x;mouse.y = event.y;drawCircles();})// 监听触摸事件window.addEventListener("touchmove",function (event) {let touch = event.touches[0];mouse.x = touch.clientX;mouse.y = touch.clientY;drawCircles();})// 创建圆点对象function Circle(x, y, radius, vx, vy, rgb, opacity, birth, life) {this.x = x;this.y = y;this.radius = radius;this.minRadius = radius;this.vx = vx;this.vy = vy;this.birth = birth;this.life = life;this.opacity = opacity;this.draw = function () {c.beginPath();c.arc(this.x, this.y, this.radius, Math.PI * 2, false);c.fillStyle = 'rgba(' + rgb + ',' + this.opacity + ')';c.fill();}this.update = function () {if (this.x + this.radius > innerWidth || this.x - this.radius < 0) {this.vx = -this.vx;}if (this.y + this.radius > innerHeight || this.y - this.radius < 0) {this.vy = -this.vy;}this.x += this.vx;this.y += this.vy;this.opacity = 1 - (((frame - this.birth) * 1) / this.life);if (frame > this.birth + this.life) {for (let i = 0; i < circleArray.length; i++) {if (this.birth == circleArray[i].birth && this.life == circleArray[i].life) {circleArray.splice(i, 1);break;}}} else {this.draw();}}}// 创建圆点数组var circleArray = [];// 初始化圆点数组function initCanvas() {circleArray = [];}// 色块数组var colorArray = ['355,85,80','9,80,100','343,81,45']// 绘制圆点function drawCircles() {for (let i = 0; i < 6; i++) {let radius = Math.floor(Math.random() * 4) + 2;let vx = (Math.random() * 2) - 1;let vy = (Math.random() * 2) - 1;let spawnFrame = frame;let rgb = colorArray[Math.floor(Math.random() * colorArray.length)];let life = 100;circleArray.push(new Circle(mouse.x, mouse.y, radius, vx, vy, rgb, 1, spawnFrame, life));}}var frame = 0;// 动画循环function animate() {requestAnimationFrame(animate);frame += 1;c.clearRect(0, 0, innerWidth, innerHeight);for (let i = 0; i < circleArray.length; i++) {circleArray[i].update();}}initCanvas();animate();// 模拟鼠标移动for (let i = 1; i < 110; i++) {(function (index) {setTimeout(function () {mouse.x = 100 + i * 10;mouse.y = 100;drawCircles();}, i * 10);})(i);}</script>
</body>

文字放射性发光特效

基于Canvas实现的一款文字展示特效

预览获取

在这里插入图片描述
核心代码

<body><canvas id="canvas"></canvas><script>var txt = "你相信光吗";var txtH = 100;var font = "sans-serif";var bg = "#000";var rayColor1 = "#e0f7fa";var rayColor2 = "#18ffff";var fade = 1000;var canvas = document.getElementById("canvas");var ctx = canvas.getContext("2d");var cw = canvas.width = window.innerWidth;var ch = canvas.height = window.innerHeight;var w2 = cw / 2;var h2 = ch / 2;var pi = Math.PI;var pi2 = pi * .5;var txtCanvas = document.createElement("canvas");var txtCtx = txtCanvas.getContext("2d");txtCtx.font = txtH + "px " + font;txtCtx.textBaseline = "middle";var txtW = Math.floor(txtCtx.measureText(txt).width);txtCanvas.width = txtW;txtCanvas.height = txtH * 1.5;var gradient = ctx.createRadialGradient(w2, h2, 0, w2, h2, txtW);gradient.addColorStop(0, rayColor2);gradient.addColorStop(1, rayColor1);ctx.strokeStyle = gradient;txtCtx.fillStyle = gradient;txtCtx.font = txtH + "px " + font;txtCtx.textBaseline = "middle";txtCtx.fillText(txt, 0, txtH * .5);//dirty adjust for descendstxtH *= 1.5;var bufferCanvas = document.createElement("canvas");bufferCanvas.width = txtW;bufferCanvas.height = txtH;var buffer = bufferCanvas.getContext("2d");//text start positionvar sx = (cw - txtW) * 0.5var sy = (ch - txtH) * 0.5generate datavar rays = [];var txtData = txtCtx.getImageData(0, 0, txtW, txtH);for (var i = 0; i < txtData.data.length; i += 4) {var ii = i / 4;var row = Math.floor(ii / txtW)var col = ii % txtWvar alpha = txtData.data[i + 3]if (alpha !== 0) {var c = "rgba("c += [txtData.data[i], txtData.data[i + 1], txtData.data[i + 2], alpha / 255]c += ")";rays.push(new Ray(Math.floor(ii / txtW), ii % txtW, c));}}var current = 1;//start animationtick();function tick() {ctx.clearRect(0, 0, cw, ch)ctx.drawImage(bufferCanvas, 0, 0, current, txtH, sx, sy, current, txtH)ctx.save()ctx.globalAlpha = .07;ctx.globalCompositeOperation = "lighter";if (drawRays(current)) {current++;current = Math.min(current, txtW)window.requestAnimationFrame(tick)} else {fadeOut()}ctx.restore()}function fadeOut() {ctx.clearRect(0, 0, cw, ch)ctx.globalAlpha *= .95;ctx.drawImage(bufferCanvas, 0, 0, current, txtH, sx, sy, current, txtH)if (ctx.globalAlpha > .01) {window.requestAnimationFrame(fadeOut)} else {window.setTimeout(restart, 500)}}function restart() {for (var i = 0; i < rays.length; i++) {rays[i].reset()}ctx.globalAlpha = 1buffer.clearRect(0, 0, txtW, txtH)current = 1;tick();}function drawRays(c) {var count = 0;ctx.beginPath()for (var i = 0; i < rays.length; i++) {var ray = rays[i];if (ray.col < c) {count += ray.draw()}}ctx.stroke()return count !== rays.length;}function filterRays(r) {return Boolean(r);}function Ray(row, col, f) {this.col = col;this.row = row;var xp = sx + col;var yp = sy + row;var fill = f;var ath = (txtH / 1.5)var a = pi2 * (this.row - ath * .5) / ath;if (a === 0) {a = (Math.random() - .5) * pi2;}var da = .02 * Math.sign(a);da += (Math.random() - .5) * .005;var l = 0;var dl = Math.random() * 2 + 2;var buffered = false;this.reset = function () {a = pi2 * (this.row - ath * .5) / ath;if (a === 0) {a = -pi2 * .5;}l = 0;buffered = false}this.draw = function () {if (l < 0) {if (!buffered) {buffer.fillStyle = fill;buffer.fillRect(this.col, this.row, 1, 1);buffered = true}return 1;} else {ctx.moveTo(xp, yp)ctx.lineTo(xp + Math.cos(a) * l, yp + Math.sin(a) * l);a += da;l += Math.cos(a) * dl;return 0;}}}</script>
</body>

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

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

相关文章

智能优化算法应用:基于鸡群算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于鸡群算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于鸡群算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鸡群算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

EZDML基本介绍

一、表结构设计器(EZDML) 这是一个数据库建表的小软件&#xff0c;可快速的进行数据库表结构设计&#xff0c;建立数据模型。类似大家常用的数据库建模工具如PowerDesigner、ERWIN、ER-Studio和Rational-Rose等的超级精简版。 官方下载地址&#xff1a;http://www.ezdml.com/d…

一文教你uni-app开发小程序直播功能,轻松打造专属直播间!

1、微信后台申请插件开通 微信后台 登录微信后台 点击设置中的第三方设置 —> 添加插件 --> 点击小程序直播组件&#xff08;获取AppID&#xff09; 2、微信后台开通直播功能 点击进入直播后台系统 这里就是我们创建的直播功能区域 3、代码中接入直播插件AppID 支持在…

思维导图软件MindNode 5 mac使用场景

MindNode 5 for Mac是一款思维导图软件产品&#xff0c;为用户在灵感启发、思绪整理、记忆协助、项目规划、授课讲演等诸多场景下提升学习和工作效率。通过导图社区和云文件无缝链接用户设备&#xff0c;方便用户随时随地收集灵感和展示文档。 MindNode 5 for Mac应用场景 助力…

【axios】TypeScript实战,结合源码,从0到1教你封装一个axios - 基础封装篇

目录 前言版本环境变量配置引入的类型1、AxiosIntance: axios实例类型2、InternalAxiosRequestConfig: 高版本下AxiosRequestConfig的拓展类型3、AxiosRequestConfig: 请求体配置参数类型4、AxiosError: 错误对象类型5、AxiosResponse: 完整原始响应体类型 目标效果开始封装骨架…

【古月居《ros入门21讲》学习笔记】15_ROS中的坐标系管理系统

目录 说明&#xff1a; 1. 机器人中的坐标变换 tf功能包能干什么&#xff1f; tf坐标变换如何实现 2. 小海龟跟随实验 安装 ros-melodic-turtle-tf 实验命令 运行效果 说明&#xff1a; 1. 本系列学习笔记基于B站&#xff1a;古月居《ROS入门21讲》课程&#xff0c;且使…

KT1404C语音芯片做的板子连接usb到电脑出来空的盘符 怎么处理?

一、问题简介 KT1404C画的板子&#xff0c;连接usb到电脑&#xff0c;出来空的盘符&#xff0c;可以确定KT404C没问题放别的板子OK&#xff0c;就是这个板子不正常&#xff0c;并且芯片5脚的电压输出是3.5v &#xff0c;正常的板子是3.3v&#xff0c;什么问题呢&#xff1f; 问…

数据结构之二叉树与堆以及力扣刷题函数扩展

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 数据结构初阶 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力 目录 1.前言 2.树 2.1概念 2.2树的相关概念 3.…

Python自动化办公:PDF文件的加密与解密

在本篇文章中&#xff0c;我们将介绍如何使用PyPDF2库对PDF文件进行加密和解密操作。 包括如何给PDF文件添加密码&#xff0c;以及如何从受密码保护的PDF文件中删除密码。 注&#xff1a;删除密码的操作&#xff0c;前提是需要知道密码哦 1. 安装PyPDF2库 首先&#xff0c;…

2023.11.26使用opencv调节图片亮度

2023.11.26使用opencv调节图片亮度 测试一些opencv对图片的处理效果&#xff0c;方法比较简单&#xff0c;找出所有像素点&#xff0c;然后将RGB三色的亮度分别进行调节即可&#xff0c;同类可以进行像素级的处理。测试结果和项目代码如下&#xff1a; 使用OpenCV调节图拍亮…

物理层之码分复用(内含相关例题)

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

数字人透明屏幕的技术原理是什么?

数字人透明屏幕的技术原理主要包括人脸识别和全息影像技术。其中&#xff0c;人脸识别技术是通过摄像头捕捉游客的面部表情和动作&#xff0c;并将其转化为数据指令&#xff0c;以便与数字人物进行互动。而全息影像技术则是利用透明屏幕&#xff0c;通过全息投影的方式将数字人…

基于Java+Vue+uniapp微信小程序商品展示系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

【古月居《ros入门21讲》学习笔记】12_服务端Server的编程实现

目录 说明&#xff1a; 1. 服务模型 说明 2. 实现过程&#xff08;C&#xff09; 创建服务器代码&#xff08;C&#xff09; 配置服务器代码编译规则 编译 运行 3. 实现过程&#xff08;Python&#xff09; 创建服务器代码&#xff08;Python&#xff09; 运行效果 说…

解决electron-build打包后运行app报错:cannot find module xxx

现象&#xff1a; 关于这个问题查了很多资料&#xff0c;也问了chatgpt都没有找到答案。 最后只能靠自己了。 于是冷静下来回想一下细节。突然发现了一个特别点。 eletron-builder打包时&#xff0c;强制要求eletron-builder和eletron必须都放在devDependencies 否则&#…

echarts图表滚动条带动页面窗口滚动条的问题

网上搜了很多方法不管用&#xff0c;后来发现每次滚动echarts或者左右滑动echarts下方都会报错&#xff0c;报错提示如下&#xff0c;看看你们的图表是否这样报错&#xff1a; 报错信息如下&#xff1a;Unable to preventDefault inside passive event listener invocation 原…

基于隐马尔可夫模型的一种流水印

文章信息 论文题目&#xff1a;An Invisible Flow Watermarking for Traffic Tracking: A Hidden Markov Model Approach 期刊&#xff08;会议&#xff09;&#xff1a;ICC 2019 - 2019 IEEE International Conference on Communications (ICC) 时间&#xff1a;2019 级别&am…

Elsevier的latex模板

1.关于Elsevier的letex模板&#xff08; version 2.3 2021-05-11)一开始直接编辑出现The key ‘stm/author/&#xff1c;options&#xff1e;‘ is unknown and 的问 LaTeX Error: The key stm/author/<options> is unknown and is being ignored. 关于Elsevier的letex…

居家适老化设计第三十四条---卫生间之照明

居家适老化卫生间照明设计需要考虑以下几个方面&#xff1a;1. 光源选择&#xff1a;选择适合老年人眼睛的柔和光源&#xff0c;避免刺眼和眩光的发生。可以选择LED灯具&#xff0c;因为它们具有节能、寿命长和可调光的特点。2. 光线布置&#xff1a;在不同区域设置不同的光线&…

使用docker命令_进入容器_登录mysql服务_并执行sql语句---Docker工作笔记005

今天就用到了,不得不说用docker用到的还是少,记录一下,常用的也就这些吧. 首先执行: docker ps [root@localhost dataease-1.18.9]# docker ps CONTAINER ID IMAGE COMMAND CREATED …