更多>
最新下载
梦幻水族馆
《奇幻水族馆》是一款奇幻冒险游戏,让玩家探索神秘的海底世界。在这个充满想象力的水族馆中,玩家将扮演水族馆管理员的角色,通过管理和照顾各种神奇生物来体验奇幻世界的乐趣。游戏特色: 生物多样:水族箱里生活着各种奇幻生物,比如神秘的水晶鱼、光芒美人鱼等,每种生物都有独特的外观和特性。互动:玩家可以与水族箱中的生物互动、喂食、玩耍,甚至执行任务让生物离你更近。装饰施工:可以根据自己的喜好装饰水族箱,定制
0
2024-05-08
少女前线
《少女前线》是一款由SUNBORN Games开发的战略角色扮演游戏。在这个未来世界中,人类与机器人少女战斗着,你将扮演指挥官,带领独特的机器人少女部队展开一系列惊心动魄的战斗。游戏特色:庞大的机器人少女阵营:收集并培养各种不同风格和能力的机器人少女,打造属于你自己的最强队伍。深入的剧情设定:与机器人少女们展开交流并深入了解她们的故事背景,在战斗中为她们提供支持和鼓舞。精美的战斗画面:享受华丽的战
832
2024-05-06
星之翼
《星之翼》是一款将机甲美少女元素与经典GVG格斗玩法完美融合的3D竞技游戏。游戏中,玩家将操纵拥有强大战力的机甲美少女,在热血沸腾的战场上,展开激烈的1V1、2V2对战,感受无与伦比的竞技魅力。游戏通过高精度的3D建模技术,呈现出绚丽的画面效果。每台机甲都独具匠心,细腻刻画了充满科技感的机械构造与少女的柔美身姿,仿佛是一部活跃在掌间的动画大片。美少女驾驶员则各具魅力,不同的性格特点通过语音和动作得
521
2024-05-06
小花仙精灵乐园
《小花仙精灵乐园》是一款充满童趣和魔法的休闲游戏,为广大玩家带来美好的游戏体验。在游戏中,你将会扮演一位小花仙,与其他玩家一起进入精灵乐园,展开充满惊喜的冒险之旅。游戏特色:全新的魔法冒险:在更加精致的画面下,享受全新的精灵乐园冒险。精美的游戏画面:游戏中采用了3D最新技术,打造了唯美的游戏画面,让玩家感受到全新的视觉震撼。各种各样的活动:在游戏中,玩家可以参加各种各样的活动,获得大量游戏奖励。丰
703
2024-05-06
餐厅萌物语
《餐厅萌物语》是一款可爱的餐厅经营模拟游戏。在这个游戏中,你将扮演一位年轻的餐厅老板,通过经营和管理餐厅,迎接一群可爱的萌物顾客,打造出一家独特而繁忙的餐厅。游戏特色:可爱的萌物顾客:游戏中有各种可爱的动物人物作为顾客,每个动物都有自己的喜好和需求,你需要根据他们的喜好来提供最合适的菜品。自定义餐厅:从装修到家具摆设,你可以根据自己的喜好和创意来打造独特的餐厅,吸引更多的顾客。多样化的菜单:游戏中
574
2024-05-05
山河旅探
《山河旅探》游戏介绍《山河旅探》是一款引人入胜的剧情向国风本格推理探案游戏。这款游戏巧妙地将传统的中国文化元素与经典的推理探案玩法相结合,为玩家呈现出一个充满神秘与惊奇的游戏世界。在游戏中,玩家将扮演一名天才少年侦探,穿梭于山河之间,探索各种扑朔迷离的案件。每个案件都经过精心设计,充满悬疑与挑战,需要玩家运用智慧与观察力,收集线索,推理出真相。游戏的画面风格独特,采用了唯美的国风画风,将古代中国的
946
2024-05-05
恋与制作人
《恋与制作人》是一款由Elex开发的女性向手机游戏,是一款恋爱养成类型的游戏。在这款游戏中,你将扮演一名制作人,和四位各具特色的男主角展开一段浪漫之旅。游戏特色:真人配音,还原最真实的剧情体验。丰富的游戏剧情,跌宕起伏的情感故事,让你身临其境。完美还原了AR游戏的操作,让你更好地享受游戏乐趣。独具特色的游戏玩法让你更加深入了解男主角,体验不一样的恋爱。通过任务和活动赚取道具,使用道具提升男主角属性
519
2024-05-04
最强大脑3
《最强大脑3》是一款刺激有趣的智力竞技游戏,挑战你的大脑极限,展现你的智慧与技巧。在这个游戏中,玩家将面对各种脑力挑战,包括解密、推理、记忆等多种题材,让你的大脑得到全方位的锻炼。游戏特色:多样化的挑战题材,涵盖解密、推理、记忆等多个领域,保证你不会感到无聊。丰富的关卡设计,难度逐渐增加,挑战你的智商极限。多种游戏模式可供选择,单人挑战、多人对战,让你与好友一同比拼智商。精美的画面设计和音效,营造
869
2024-05-04
异尘:达米拉
《异尘:达米拉》游戏介绍《异尘:达米拉》是一款引人入胜的全3D异星轻科幻御宅塔防游戏。在这个游戏中,玩家将扮演阿图姆号的长官,肩负起延续人类希望的重任,带领一群充满朝气和活力的「新生」少女,踏上神秘的达米拉星,探索这颗绿色异星的一切。游戏以独特的科幻设定和精美的3D画面为玩家呈现了一个充满未知和挑战的异星世界。在这片神秘的土地上,玩家需要带领少女们建立坚固的防御工事,抵御来自异星的威胁,同时还需要
254
2024-05-03
少年西游记2
《少年西游记2》游戏介绍踏入《少年西游记2》的世界,就是踏入了一个瑰丽奇幻、充满东方韵味的工业朋克冒险之旅。这款游戏作为少年系卡牌的最新力作,将国潮元素与朋克风格完美融合,为玩家呈现出一个前所未有的西游世界。首先,游戏的画风独具匠心。设计师们巧妙地将传统的国画、版画技法与现代朋克元素相结合,使得每一个角色、每一个场景都充满了浓厚的东方韵味和前卫的朋克气息。玩家仿佛置身于一个融合了古典与现代、东方与
951
2024-05-03
24小时阅读排行榜
- 1 使用 Node.js 框架构建 Web 应用程序的挑战
- 2 CFX币哪些交易所可以买到?
- 3 Wrapped Dog 与其他狗币的区别是什么?
- 4 一文了解FTM币的由来
- 5 增强您的 Web 动画:像专业人士一样优化 requestAnimationFrame
- 6 EOS币值得长期持有吗?
- 7 编写干净、高效且可维护的代码 - Python 作为用例。
- 8 Coldlar冷钱包使用教程:Coldlar冷钱包怎么使用最安全?
- 9 新第 12 代 Kindle 泄露,将采用美丽的绿色配色
- 10 索尼为传闻中的新款 LinkBuds、LinkBuds S 和 LinkBuds 扬声器举办了新的发布会
- 11 FTM是什么货币?
- 12 Epic Games Store 赠送可爱的独立游戏作为每周免费游戏优惠的一部分
- 13 Garmin 发布了多款智能手表的新更新,旨在修复活动崩溃问题
- 14 如何成功投资 SEI 代币?
- 15 iToken冷钱包使用教程:iToken冷钱包怎么使用最安全?
更多>
最新教程
-
- 国外Web开发全栈课程全集
- 1412 2024-04-24
-
- Go语言实战之 GraphQL
- 1699 2024-04-19
-
- 550W粉丝大佬手把手从零学JavaScript
- 3115 2024-04-18
-
- python大神Mosh,零基础小白6小时完全入门
- 2638 2024-04-10
-
- MySQL 初学入门(mosh老师)
- 1582 2024-04-07
-
- Mock.js | Axios.js | Json | Ajax--十天精品课堂
- 2420 2024-03-29
HTML5的岩浆动画背景特效
可设置 HTML5 岩浆动画背景效果的动画属性
<风格>
@字符集“UTF-8”;
*, *:之前, *:之后 {
框大小:边框框;
}
身体 {### 填充:0;
边距:0;
溢出:隐藏;
字体系列:“Roboto”,无衬线;
}
帆布 {### 宽度:100vw;
高度:100vh;
}
h1 {
位置:绝对;
z 索引: 1;
宽度:100%;
左:0;
顶部:50%;
-webkit-transform: 翻译Y(-50%);
变换:翻译Y(-50%);
混合混合模式:覆盖;
颜色: rgba(0, 0, 0, 0.3);
行高:0;
字体大小:16px;
字母间距:4px;
文本对齐:居中;
文本转换:大写;
变换:翻译Y(-50%);
光标:指针;
-webkit-transition:颜色 .2s 缓入缓出;
过渡:颜色 .2s 缓入出;
-webkit-用户选择:无;
-moz-用户选择:无;
-ms-用户选择:无;
用户选择:无;
}
h1:悬停{
颜色: rgba(0, 0, 0, 0.8);
}
</风格>
</头>
<正文>
<脚本 src="js/chroma.min.js"></脚本>
<脚本 src="js/dat.gui.min.js"></script>
<canvas id="canvas"></canvas>
<h1>地板是熔岩</h1>
<脚本>
'使用严格';
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("无法将类作为函数调用"); } }
变量设置 = {
振幅X:150,
振幅Y:20,
行数: 30,
开始颜色: '#500c44',
结束颜色:'#b4d455'
};
var c = document.getElementById("canvas");
var ctx = c.getContext("2d");
var winW = window.innerWidth;
var winH = window.innerHeight;
var 路径 = [];
var 颜色 = [];
var mouseY = 0;
var mouseDown = false;
变量时间 = 0;
var 曲线=未定义;
var 速度 = 未定义;
var 路径 = 函数 () {
函数路径(y,颜色){
_classCallCheck(this, 路径);
这个.y = y;
this.颜色 = 颜色;
this.root = [];
this.create();
this.draw();
}
Path.prototype.create = function create() {
var rootX = 0;
var rootY = this.y;
this.root = [{ x: rootX, y: rootY }];
while (rootX < winW) {
var休闲 = Math.random() > 0.5? 1 : -1;
var x = parseInt(settings.amplitudeX / 2 + Math.random() * settings.amplitudeX / 2);
var y = parseInt(rootY + Casual * (settings.amplitudeY / 2 + Math.random() * settings.amplitudeY / 2));
rootX += x;
var 延迟 = Math.random() * 100;
this.root.push({ x: rootX, y: y, 高度: rootY, 休闲: 休闲, 延迟: 延迟 });
}
};
Path.prototype.draw = 函数draw() {
ctx.beginPath();
ctx.moveTo(0, winH);
ctx.lineTo(this.root[0].x, this.root[0].y);
for (var i = 1; i < this.root.length - 1; i++) {
var x = this.root[i].x;
var y = this.root[i].y;
var nextX = this.root[i + 1].x;
var nextY = this.root[i + 1].y;
var xMid = (x + nextX) / 2;
var yMid = (y + nextY) / 2;
var cpX1 = (xMid + x) / 2;
var cpY1 = (yMid + y) / 2;
var cpX2 = (xMid + nextX) / 2;
var cpY2 = (yMid + nextY) / 2;
ctx.quadraticCurveTo(cpX1, y, xMid, yMid);
ctx.quadraticCurveTo(cpX2, nextY, nextX, nextY);
}
var lastPoint = this.root.reverse()[0];
this.root.reverse();
ctx.lineTo(lastPoint.x,lastPoint.y);
ctx.lineTo(winW, winH);
ctx.fillStyle = this.color;
ctx.fill();
ctx.closePath();
};
返回路径;
}();
/* 在里面 */###
var 路径 = 未定义;
函数 init() {
c.width = winW;
c.高度 = winH;
路径= [];
color = chroma.scale([settings.startColor, settings.endColor]).mode('lch').colors(settings.lines);
document.body.style = '背景:' + settings.startColor;
for (var i = 0; i < settings.lines; i++) {
Paths.push(new Path(winH / settings.lines * i, color[i]));
settings.startY = winH / settings.lines * i;
}
}
/* 获胜调整大小 */
window.addEventListener('调整大小', function () {
winW = window.innerWidth;
winH = window.innerHeight;
c.width = winW;
c.高度 = winH;
在里面();### });
window.dispatchEvent(new Event("resize"));
/* 使成为 */### 函数渲染(){
c.width = winW;
c.高度 = winH;
曲线=鼠标按下? 2:4;
速度 = 鼠标按下? 6 : 0.8;
时间+=鼠标按下? 0.1 : 0.05;
Paths.forEach(函数(路径, i) {
path.root.forEach(函数 (r, j) {
if (j % 曲线 == 1) {
var move = Math.sin(时间 + r.delay) * 速度 * r.casual;
r.y -= 移动 / 2 - 移动;
}
if (j + 1 % 曲线 == 0) {
var move = Math.sin(时间 + r.delay) * 速度 * r.casual;
r.x += 移动 / 2 - 移动 / 10;
}
});
路径.draw();
});
requestAnimationFrame(渲染);
}
使成为();###
/* 鼠标按下 */
'mousedown touchstart'.split(' ').forEach(function (e) {
document.addEventListener(e, function () {
鼠标按下 = true;
});
});
/* 鼠标松开 */
'mouseup mouseleave touchend'.split(' ').forEach(function (e) {
document.addEventListener(e, function () {
鼠标按下 = false;
});
});
/* 鼠标移动 */
'mousemove touchmove'.split(' ').forEach(function (e) {
document.addEventListener(e, 函数 (e) {
mouseY = e.clientY || e.touches[0].clientY;
});
});
/* 数据图形用户界面 */
var gui = 函数 datgui() {
var gui = new dat.GUI();
// dat.GUI.toggleHide();
gui.close = true;
gui.add(settings, "amplitudeX", 40, 200).step(20).onChange(function (newValue) {
在里面();### });
gui.add(settings, "amplitudeY", 0, 100).step(1).onChange(function (newValue) {
在里面();### });
gui.add(settings, "lines", 5, 50).step(1).onChange(function (newValue) {
在里面();### });
gui.addColor(settings, "startColor").onChange(function (newValue) {
在里面();### document.querySelector('h1').innerHTML = '或者你想要的任何内容';
});
gui.addColor(settings, "endColor").onChange(function (newValue) {
init();
document.querySelector('h1').innerHTML = 'or whatever you want';
});
return gui;
}();
</script>
</body>
</html>
<头>
<元字符集=“utf-8”>
<风格>
@字符集“UTF-8”;
*, *:之前, *:之后 {
框大小:边框框;
}
身体 {### 填充:0;
边距:0;
溢出:隐藏;
字体系列:“Roboto”,无衬线;
}
帆布 {### 宽度:100vw;
高度:100vh;
}
h1 {
位置:绝对;
z 索引: 1;
宽度:100%;
左:0;
顶部:50%;
-webkit-transform: 翻译Y(-50%);
变换:翻译Y(-50%);
混合混合模式:覆盖;
颜色: rgba(0, 0, 0, 0.3);
行高:0;
字体大小:16px;
字母间距:4px;
文本对齐:居中;
文本转换:大写;
变换:翻译Y(-50%);
光标:指针;
-webkit-transition:颜色 .2s 缓入缓出;
过渡:颜色 .2s 缓入出;
-webkit-用户选择:无;
-moz-用户选择:无;
-ms-用户选择:无;
用户选择:无;
}
h1:悬停{
颜色: rgba(0, 0, 0, 0.8);
}
</风格>
</头>
<正文>
<脚本 src="js/chroma.min.js"></脚本>
<脚本 src="js/dat.gui.min.js"></script>
<canvas id="canvas"></canvas>
<h1>地板是熔岩</h1>
<脚本>
'使用严格';
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("无法将类作为函数调用"); } }
变量设置 = {
振幅X:150,
振幅Y:20,
行数: 30,
开始颜色: '#500c44',
结束颜色:'#b4d455'
};
var c = document.getElementById("canvas");
var ctx = c.getContext("2d");
var winW = window.innerWidth;
var winH = window.innerHeight;
var 路径 = [];
var 颜色 = [];
var mouseY = 0;
var mouseDown = false;
变量时间 = 0;
var 曲线=未定义;
var 速度 = 未定义;
var 路径 = 函数 () {
函数路径(y,颜色){
_classCallCheck(this, 路径);
这个.y = y;
this.颜色 = 颜色;
this.root = [];
this.create();
this.draw();
}
Path.prototype.create = function create() {
var rootX = 0;
var rootY = this.y;
this.root = [{ x: rootX, y: rootY }];
while (rootX < winW) {
var休闲 = Math.random() > 0.5? 1 : -1;
var x = parseInt(settings.amplitudeX / 2 + Math.random() * settings.amplitudeX / 2);
var y = parseInt(rootY + Casual * (settings.amplitudeY / 2 + Math.random() * settings.amplitudeY / 2));
rootX += x;
var 延迟 = Math.random() * 100;
this.root.push({ x: rootX, y: y, 高度: rootY, 休闲: 休闲, 延迟: 延迟 });
}
};
Path.prototype.draw = 函数draw() {
ctx.beginPath();
ctx.moveTo(0, winH);
ctx.lineTo(this.root[0].x, this.root[0].y);
for (var i = 1; i < this.root.length - 1; i++) {
var x = this.root[i].x;
var y = this.root[i].y;
var nextX = this.root[i + 1].x;
var nextY = this.root[i + 1].y;
var xMid = (x + nextX) / 2;
var yMid = (y + nextY) / 2;
var cpX1 = (xMid + x) / 2;
var cpY1 = (yMid + y) / 2;
var cpX2 = (xMid + nextX) / 2;
var cpY2 = (yMid + nextY) / 2;
ctx.quadraticCurveTo(cpX1, y, xMid, yMid);
ctx.quadraticCurveTo(cpX2, nextY, nextX, nextY);
}
var lastPoint = this.root.reverse()[0];
this.root.reverse();
ctx.lineTo(lastPoint.x,lastPoint.y);
ctx.lineTo(winW, winH);
ctx.fillStyle = this.color;
ctx.fill();
ctx.closePath();
};
返回路径;
}();
/* 在里面 */###
var 路径 = 未定义;
函数 init() {
c.width = winW;
c.高度 = winH;
路径= [];
color = chroma.scale([settings.startColor, settings.endColor]).mode('lch').colors(settings.lines);
document.body.style = '背景:' + settings.startColor;
for (var i = 0; i < settings.lines; i++) {
Paths.push(new Path(winH / settings.lines * i, color[i]));
settings.startY = winH / settings.lines * i;
}
}
/* 获胜调整大小 */
window.addEventListener('调整大小', function () {
winW = window.innerWidth;
winH = window.innerHeight;
c.width = winW;
c.高度 = winH;
在里面();### });
window.dispatchEvent(new Event("resize"));
/* 使成为 */### 函数渲染(){
c.width = winW;
c.高度 = winH;
曲线=鼠标按下? 2:4;
速度 = 鼠标按下? 6 : 0.8;
时间+=鼠标按下? 0.1 : 0.05;
Paths.forEach(函数(路径, i) {
path.root.forEach(函数 (r, j) {
if (j % 曲线 == 1) {
var move = Math.sin(时间 + r.delay) * 速度 * r.casual;
r.y -= 移动 / 2 - 移动;
}
if (j + 1 % 曲线 == 0) {
var move = Math.sin(时间 + r.delay) * 速度 * r.casual;
r.x += 移动 / 2 - 移动 / 10;
}
});
路径.draw();
});
requestAnimationFrame(渲染);
}
使成为();###
/* 鼠标按下 */
'mousedown touchstart'.split(' ').forEach(function (e) {
document.addEventListener(e, function () {
鼠标按下 = true;
});
});
/* 鼠标松开 */
'mouseup mouseleave touchend'.split(' ').forEach(function (e) {
document.addEventListener(e, function () {
鼠标按下 = false;
});
});
/* 鼠标移动 */
'mousemove touchmove'.split(' ').forEach(function (e) {
document.addEventListener(e, 函数 (e) {
mouseY = e.clientY || e.touches[0].clientY;
});
});
/* 数据图形用户界面 */
var gui = 函数 datgui() {
var gui = new dat.GUI();
// dat.GUI.toggleHide();
gui.close = true;
gui.add(settings, "amplitudeX", 40, 200).step(20).onChange(function (newValue) {
在里面();### });
gui.add(settings, "amplitudeY", 0, 100).step(1).onChange(function (newValue) {
在里面();### });
gui.add(settings, "lines", 5, 50).step(1).onChange(function (newValue) {
在里面();### });
gui.addColor(settings, "startColor").onChange(function (newValue) {
在里面();### document.querySelector('h1').innerHTML = '或者你想要的任何内容';
});
gui.addColor(settings, "endColor").onChange(function (newValue) {
init();
document.querySelector('h1').innerHTML = 'or whatever you want';
});
return gui;
}();
</script>
</body>
</html>
这是一款不错的可设置动画属性的HTML5岩浆动画背景特效,展开网页右顶部菜单便可以设置动画动画幅度、颜色等属性。
本站声明
本站所有资源均由网友贡献发布,或转载各大下载站。请自行检查软件的完整性!本网站所有资源仅供学习和参考。请勿用于商业用途,否则造成的一切后果由您自行负责!如有侵权,请联系我们删除下架。联系方式:admin@php.cn