html动画特效代码(HTML创意动画代码)
导读:1、动态气泡背景 <!DOCTYPE html>...
1 、动态气泡背景
<!DOCTYPE html> <html> <head> <title>Bubble Background</title> <style> body { margin: 0; padding: 0; height: 100vh; background: #222; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; } canvas { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } h1 { color: white; font-size: 4rem; z-index: 1; } </style> </head> <body> <canvas id="canvas"></canvas> <h1>Hello Boy!</h1> <script> const canvas = document.getElementById("canvas"); const ctx = canvas.getContext("2d"); canvas.width = window.innerWidth; canvas.height = window.innerHeight; class Bubble { constructor(x, y, radius, color) { this.x = x; this.y = y; this.radius = radius; this.color = color; this.dx = Math.random() - 0.5; this.dy = Math.random() - 0.5; this.speed = Math.random() * 5 + 1; } draw() { ctx.beginPath(); ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2); ctx.fillStyle = this.color; ctx.fill(); } update() { if (this.x + this.radius > canvas.width || this.x - this.radius < 0) { this.dx = -this.dx; } if (this.y + this.radius > canvas.height || this.y - this.radius < 0) { this.dy = -this.dy; } this.x += this.dx * this.speed; this.y += this.dy * this.speed; } } const bubbles = []; function init() { for (let i = 0; i < 50; i++) { const radius = Math.random() * 50 + 10; const x = Math.random() * (canvas.width - radius * 2) + radius; const y = Math.random() * (canvas.height - radius * 2) + radius; const color = `hsla(${Math.random() * 360}, 100%, 50%, 0.8)`; bubbles.push(new Bubble(x, y, radius, color)); } } function animate() { requestAnimationFrame(animate); ctx.clearRect(0, 0, canvas.width, canvas.height); bubbles.forEach((bubble) => { bubble.draw(); bubble.update(); }); } init(); animate(); </script> </body> </html>这个代码使用了 Canvas 技术 ,创建了一个随机生成的气泡背景并且让气泡动态漂浮 ,形成了一个很有趣的效果 。你可以在这个基础上尝试进行一些自己的创意 ,比如修改气泡的数量 、大小 、颜色 ,以及运动的方式等等 。
2 、创意文字
<!DOCTYPE html> <html> <head> <title>Rainbow Text</title> <style> body { background: black; color: white; font-family: Open Sans, sans-serif; text-align: center; height: 100%; display: flex; flex-direction: column; justify-content: center; } h1 { font-size: 8em; margin: 100px auto; animation: rainbow 5s ease-in-out infinite; } @keyframes rainbow { 0% { color: #ff0000; text-shadow: 0 0 10px #ff0000, 0 0 20px #ff0000, 0 0 30px #ff0000; } 25% { color: #ff8000; text-shadow: 0 0 10px #ff8000, 0 0 20px #ff8000, 0 0 30px #ff8000; } 50% { color: #ffff00; text-shadow: 0 0 10px #ffff00, 0 0 20px #ffff00, 0 0 30px #ffff00; } 75% { color: #00ff00; text-shadow: 0 0 10px #00ff00, 0 0 20px #00ff00, 0 0 30px #00ff00; } 100% { color: #0000ff; text-shadow: 0 0 10px #0000ff, 0 0 20px #0000ff, 0 0 30px #0000ff; } } </style> </head> <body> <h1>Hello Girl</h1> </body> </html>这个代码使用了 CSS 的动画和阴影特效 ,让页面中的文字在红 、橙 、黄 、绿 、蓝五种颜色之间不断变化 ,形成了一个很有趣的效果 。你可以在这个基础上尝试进行一些自己的创意 ,比如修改文字的大小 、样式 、颜色 ,以及变化的频率和方式等等 。
3 、旋转立方体
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>旋转立方体</title> <style> #cube { width: 200px; height: 200px; position: relative; transform-style: preserve-3d; animation: rotate 6s infinite linear; margin: 100px auto; } #cube div { position: absolute; width: 200px; height: 200px; background-color: rgba(0, 255, 255, 0.5); border: 2px solid #333; } #cube .front { transform: translateZ(100px); } #cube .back { transform: rotateY(180deg) translateZ(100px); } #cube .right { transform: rotateY(90deg) translateZ(100px); } #cube .left { transform: rotateY(-90deg) translateZ(100px); } #cube .top { transform: rotateX(90deg) translateZ(100px); } #cube .bottom { transform: rotateX(-90deg) translateZ(100px); } @keyframes rotate { 0% { transform: rotateX(0) rotateY(0) rotateZ(0); } 100% { transform: rotateX(360deg) rotateY(360deg) rotateZ(360deg); } } </style> </head> <body> <div id="cube"> <div class="front"></div> <div class="back"></div> <div class="right"></div> <div class="left"></div> <div class="top"></div> <div class="bottom"></div> </div> <script> const cube = document.querySelector(#cube); let isPaused = false; cube.addEventListener(mouseover, () => { isPaused = true; cube.style.animationPlayState = paused; }); cube.addEventListener(mouseout, () => { isPaused = false; cube.style.animationPlayState = running; }); setInterval(() => { if (!isPaused) { cube.style.animationPlayState = running; } }, 1000); </script> </body> </html>该示例中 ,我们使用了 transform-style: preserve-3d 属性来创建 3D 空间通过对立方体不同面的旋转实现了立方体的旋转效果 。我们还使用了 CSS 动来实现无限循环的旋转效果 ,并使用 JavaScript 实现了当鼠标悬停在立方体上时暂停动画的交互效果 。
声明:本站所有文章 ,如无特殊说明或标注 ,均为本站原创发布 。任何个人或组织,在未征得本站同意时 ,禁止复制 、盗用、采集 、发布本站内容到任何网站 、书籍等各类媒体平台 。如若本站内容侵犯了原著者的合法权益 ,可联系我们进行处理 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!