本文介绍: 这个代码使用了 Canvas 技术创建一个随机生成气泡背景并且让气泡动态漂浮,形成了一个很有趣的效果。你可以在这个基础上尝试进行一些自己的创意比如修改气泡的数量、大小、颜色,以及运动的方式等等。这个代码使用了 CSS 的动画阴影特效,让页面中的文字在红、橙、黄、绿、蓝五种颜色之间不断变化,形成了一个很有趣的效果。你可以在这个基础上尝试进行一些自己的创意比如修改文字大小样式、颜色,以及变化的频率方式等等。该示例中,我们使用transformstyle: preserve-3d 属性

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 实现了当鼠标悬停在立方体上时暂停动画交互效果

原文地址:https://blog.csdn.net/qq_52108058/article/details/129215194

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_9577.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注