要在HTML5、CSS3和Vanilla JS中实现三个图形的动态化,你可以按照以下步骤进行:
首先,创建一个基本的HTML结构,包含三个图形元素。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dynamic Shapes</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="shape" id="shape1"></div>
<div class="shape" id="shape2"></div>
<div class="shape" id="shape3"></div>
<script src="script.js"></script>
</body>
</html>
使用CSS3来定义图形的样式和动画效果。
/* styles.css */
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: #f0f0f0;
}
.shape {
width: 100px;
height: 100px;
margin: 10px;
border-radius: 10px;
background-color: #3498db;
animation: moveShape 3s infinite alternate;
}
#shape1 {
background-color: #e74c3c;
}
#shape2 {
background-color: #2ecc71;
}
#shape3 {
background-color: #f1c40f;
}
@keyframes moveShape {
from {
transform: translateY(0);
}
to {
transform: translateY(20px);
}
}
使用Vanilla JS来动态改变图形的属性,例如颜色、大小和动画速度。
// script.js
document.addEventListener('DOMContentLoaded', () => {
const shapes = document.querySelectorAll('.shape');
shapes.forEach(shape => {
shape.addEventListener('mouseover', () => {
shape.style.backgroundColor = getRandomColor();
shape.style.animationDuration = `${Math.random() * 3 + 1}s`;
});
shape.addEventListener('click', () => {
const newSize = Math.floor(Math.random() * 50) + 50;
shape.style.width = `${newSize}px`;
shape.style.height = `${newSize}px`;
});
});
function getRandomColor() {
const letters = '0123456789ABCDEF';
let color = '#';
for (let i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
});
div
元素,每个元素代表一个图形。@keyframes
定义了一个简单的上下移动动画。这种动态化的图形可以用于各种网页设计,例如:
通过这种方式,你可以轻松实现图形的动态化,并且可以根据需要进一步扩展和定制。
领取专属 10元无门槛券
手把手带您无忧上云