<!--风车转动是transform属性 60是转动角度,最大360 具体要求:开始按钮先可以点击,停止按钮不可以 点击完开始,开始不可以点击,停止可以点击 点击完停止,停止可以点击,开始不可以点击-->
时间: 2024-02-22 08:58:20 浏览: 146
好的,根据您的要求,我写了一个简单的示例代码,实现了风车的转动和按钮的交互效果。以下是代码及注释:
```html
<!DOCTYPE html>
<html>
<head>
<title>Windmill</title>
<style>
/* 定义风车的样式 */
.windmill {
position: relative;
width: 200px;
height: 200px;
border-radius: 50%;
background: #d7e3f2;
}
/* 定义风车的叶片样式 */
.windmill .blade {
position: absolute;
top: 50%;
left: 50%;
width: 80px;
height: 80px;
transform-origin: 0 40px; /* 设置叶片的旋转中心 */
background: #fff;
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
}
/* 设置叶片的样式和角度 */
.blade-1 {
transform: rotate(0deg);
}
.blade-2 {
transform: rotate(120deg);
}
.blade-3 {
transform: rotate(240deg);
}
/* 定义按钮的样式 */
button {
margin-top: 20px;
padding: 10px 20px;
font-size: 16px;
border: none;
border-radius: 4px;
background: #007bff;
color: #fff;
cursor: pointer;
}
/* 设置按钮的禁用状态 */
button[disabled] {
background: #ddd;
color: #666;
cursor: not-allowed;
}
</style>
</head>
<body>
<div class="windmill">
<div class="blade blade-1"></div>
<div class="blade blade-2"></div>
<div class="blade blade-3"></div>
</div>
<button id="startBtn">开始</button>
<button id="stopBtn" disabled>停止</button>
<script>
// 获取按钮和风车元素
var startBtn = document.getElementById('startBtn');
var stopBtn = document.getElementById('stopBtn');
var windmill = document.querySelector('.windmill');
// 定义风车叶片的初始角度和旋转状态
var angle = 0;
var isRotating = false;
// 定义开始按钮的点击事件
startBtn.onclick = function() {
if (!isRotating) { // 判断风车是否正在旋转
isRotating = true;
startBtn.disabled = true; // 禁用开始按钮
stopBtn.disabled = false; // 启用停止按钮
// 定义风车旋转的动画函数
function rotateWindmill() {
angle += 60; // 每次转动60度
if (angle >= 360) { // 到达360度时重置
angle = 0;
}
windmill.style.transform = 'rotate(' + angle + 'deg)'; // 设置风车的旋转角度
if (isRotating) { // 如果风车正在旋转,则继续调用动画函数
window.requestAnimationFrame(rotateWindmill);
}
}
rotateWindmill(); // 开始风车旋转
}
};
// 定义停止按钮的点击事件
stopBtn.onclick = function() {
isRotating = false;
startBtn.disabled = false; // 启用开始按钮
stopBtn.disabled = true; // 禁用停止按钮
};
</script>
</body>
</html>
```
在这个示例中,我们使用了 `transform` 属性来实现风车叶片的旋转,使用了 `requestAnimationFrame` 方法来控制动画帧数,使用了 `disabled` 属性来控制按钮的禁用状态。希望这个示例对您有所帮助。
阅读全文