※需求描述 初始打开页面时,小球上显示文字为“单击移动”当单击小球之后,小球开 始从左向右移动,并且小球上显示的文字为“单击停止”当再次单击小球时,小 球停止移动并且小球上显示的文字为“单击移动“。
时间: 2023-12-10 20:40:50 浏览: 94
这是一个比较简单的交互需求,可以通过 JavaScript 实现。以下是一个实现该功能的示例代码:
HTML:
```html
<div id="ball" onclick="moveBall()">单击移动</div>
```
CSS:
```css
#ball {
width: 100px;
height: 100px;
background-color: red;
border-radius: 50%;
position: absolute;
left: 0;
top: 50%;
transform: translate(0, -50%);
display: flex;
justify-content: center;
align-items: center;
color: white;
font-size: 20px;
cursor: pointer;
}
```
JavaScript:
```javascript
var ball = document.getElementById("ball");
var isMoving = false;
var intervalId;
function moveBall() {
if (isMoving) {
clearInterval(intervalId);
isMoving = false;
ball.textContent = "单击移动";
} else {
intervalId = setInterval(function() {
var currentLeft = parseInt(ball.style.left) || 0;
var nextLeft = currentLeft + 10;
ball.style.left = nextLeft + "px";
if (nextLeft >= window.innerWidth - 100) {
clearInterval(intervalId);
isMoving = false;
ball.textContent = "单击移动";
}
}, 50);
isMoving = true;
ball.textContent = "单击停止";
}
}
```
解释一下代码:
首先,HTML 中定义了一个 div 元素,用于表示小球,并设置了一个 onclick 事件处理函数 moveBall。
CSS 中对小球进行了样式的设置,使其居中显示并且有一个红色的圆形背景。
JavaScript 中定义了三个变量,分别表示小球元素、小球是否在移动、定时器的 ID。然后定义了 moveBall 函数,用于处理点击事件。
当小球未在移动时,点击小球会使其开始从左向右移动,并且将 isMoving 设置为 true,同时将小球上的文字设置为 “单击停止”。在移动过程中,每隔 50 毫秒将小球的 left 值增加 10 像素。当小球移动到窗口右侧时,清除定时器并将 isMoving 设置为 false,并将小球上的文字设置为 “单击移动”。
当小球正在移动时,点击小球会使其停止移动,并将 isMoving 设置为 false,同时将小球上的文字设置为 “单击移动”。
以上就是实现该功能的代码。
阅读全文