更多>
最新下载
CSS3带阴影五彩文字特效
CSS3带阴影五彩文字特效是一款具有卡通形象的CSS3五彩文字特效,虽然没有迷人的动画效果,但是五彩缤纷的文字展现在屏幕上也是非常酷的,再加上每一个文字都有不同角度的阴影效果,加上漂亮的英文字体,让整一个文字特效显得非常出色迷人,大家可以在宣传广告页面试试这款CSS3文字特效。
0
2025-12-26
jQuery鼠标悬停图片放大效果
jQuery鼠标悬停图片放大效果,当鼠标悬停后图片的高度,宽度各自增加20像素大小,然后用相对定位绝对定位,相当于将图片控制向外扩散10px大小。
0
2025-12-26
24小时阅读排行榜
- 1 如何让 div 在网页中完美居中(水平垂直居中)
- 2 如何在 JavaScript 中正确比较本地日期与当前日期
- 3 Go 工作区与自定义项目结构的统一实践方案
- 4 Laravel 表单请求中基于日期条件的动态验证规则实现
- 5 Go Workspace 与自定义项目结构的统一实践方案
- 6 Selenium 中使用 ActionChains 实现精确坐标点击的正确方法
- 7 如何正确向 OpenAI Chat API 传递消息数组(避免 400 错误)
- 8 如何让 div 在网页中完美居中(水平+垂直)
- 9 Go 工作区与自定义项目结构的统一实践指南
- 10 标题:PHP 递归遍历未知深度的多维 API 数组(避免嵌套 foreach)
- 11 如何通过鼠标悬停控制视频播放器导航栏的显示与隐藏
- 12 PhpStorm能否连接MySQL数据库_PhpStorm数据库连接与测试【方法】
- 13 本地php环境怎么设置伪静态_伪静态规则配置教程【seo】
- 14 PHP怎么接收XML动态数据_PHP接收XML动态数据的方法【步骤】
- 15 网页嵌入php链接失败header已发送错误怎么解_网页嵌入php链接失败header问题处理法【解决】
更多>
最新教程
-
- Node.js 教程
- 14540 2025-08-28
-
- CSS3 教程
- 1541732 2025-08-27
-
- Rust 教程
- 22188 2025-08-27
-
- Vue 教程
- 24671 2025-08-22
-
- PostgreSQL 教程
- 21359 2025-08-21
-
- Git 教程
- 8449 2025-08-21
css3+HTML5 Canvas炫酷3D线条延伸动画特效
js代码
<script>
;(function() {
'use strict';
var c = document.getElementById('c');
var ctx = c.getContext('2d');
var w = c.width = window.innerWidth;
var h = c.height = window.innerHeight;
var cx = w / 2;
var cy = h / 2;
var fl = 1000;
function prj(obj) {
var cz = obj.z + fl;
if(cz === 0) return;
var scl = fl / cz;
obj.p.x = cx + obj.x * scl;
obj.p.y = cy + obj.y * scl;
obj.s = scl;
}
var P = function(x, y, z) {
this.x = x;
this.y = y;
this.z = z;
this.s = 1;
this.cl = 0;
this.p = {
x: 0,
y: 0
};
};
P.prototype = {
constructor: P,
update: function() {
this.z -= 30;
},
render: function(ctx) {
if(this.z <= -fl) return;
ctx.save();
ctx.translate(this.p.x, this.p.y);
ctx.scale(this.s, this.s);
ctx.fillStyle = 'hsla(' + this.cl + ', 100%, 50%, 0.5)';
ctx.beginPath();
ctx.arc(0, 0, 2, 0, Math.PI * 2);
ctx.fill();
ctx.restore();
}
};
var M = function(x, y, z) {
this.list = [];
this.max = 100;
this.x = x;
this.y = y;
this.z = z;
this.s = 1;
this.p = {
x: 0,
y: 0
};
this.ax = Math.random() * (Math.PI * 2);
this.ay = Math.random() * (Math.PI * 2);
this.rx = Math.random() * 100;
this.ry = Math.random() * 100;
this.cl = Math.random() * 360;
this.cls = Math.random();
};
M.prototype = {
constructor: M,
update: function() {
this.cl += this.cls;
this.ax += Math.random() * 0.1 - 0.02;
this.ay += Math.random() * 0.1 - 0.02;
this.x = Math.cos(this.ax) * 100;
this.y = Math.sin(this.ay) * 100;
this.z += 10;
if(this.z > fl) this.z = fl;
if(this.list.length < this.max) {
if(Math.random() * 100 < 50) {
var pp = new P(this.x, this.y, this.z);
pp.cl = this.cl;
this.list.push(pp);
}
} else {
var pp = this.list.shift();
pp.x = this.x;
pp.y = this.y;
pp.z = this.z;
pp.cl = this.cl;
this.list.push(pp);
}
},
render: function(ctx) {
if(this.z <= -fl) return;
ctx.save();
ctx.translate(this.p.x, this.p.y);
ctx.fillStyle = 'green';
ctx.beginPath();
ctx.arc(0, 0, 2, 0, Math.PI * 2);
ctx.fill();
ctx.restore();
}
};
function update(mv, list) {
for(var i = 0; i < list.length; i++) {
var p = list[i];
p.update();
prj(p);
p.render(ctx);
}
for(var i = list.length-1; i >= 0; i--) {
var p = list[i];
if(p.z <= -fl) continue;
if(i === list.length - 1) {
ctx.lineWidth = Math.random();
ctx.strokeStyle = 'hsl(' + mv.cl + ', 100%, 50%)';
ctx.beginPath();
ctx.moveTo(p.p.x, p.p.y);
} else {
ctx.lineTo(p.p.x, p.p.y);
}
}
ctx.stroke();
}
var ms = [];
for(var i = 0; i < 10; i++) {
ms.push(new M(
Math.random() * 400 - 200,
Math.random() * 400 - 200,
Math.random() * 400 - 200));
}
requestAnimationFrame(function loop() {
requestAnimationFrame(loop);
ctx.clearRect(0, 0, w, h);
for(var i = 0; i < ms.length; i++) {
var m = ms[i];
m.update();
prj(m);
update(m, m.list);
}
});
})();
</script>
这是一款基于HTML5 Canvas绘制的炫酷3D线条延伸动画特效,多彩颜色变幻,非常漂亮!
本站所有资源都是由网友投搞发布,或转载各大下载站,请自行检测软件的完整性!本站所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!如有侵权请联系我们删除下架,联系方式:admin@php.cn
