思路:1、黑色底是div,数字圆是p;每个p需要按序号i添加id=pi(p可以固定写,也可以用js添加)image.png 2、点击事件用事件委托,通过e.target.innerHTML找到点击的数据。 3、用循环方法设置每个p动画的事件间隔。需要用到Math.random()方法。
时间: 2024-04-10 20:35:02 浏览: 78
为图片加上数字效果 两种实现方式
你的思路基本正确,以下是实现你描述的功能的一种可能的代码示例:
HTML部分:
```html
<div id="container">
<p id="p1">1</p>
<p id="p2">2</p>
<p id="p3">3</p>
<!-- 更多的p标签 -->
</div>
```
CSS部分:
```css
#container {
background-color: black;
}
p {
color: white;
cursor: pointer;
}
```
JavaScript部分:
```javascript
// 获取所有的p标签
const pElements = document.querySelectorAll('p');
// 为每个p标签添加点击事件监听器
document.getElementById('container').addEventListener('click', function(e) {
// 判断点击的元素是否为p标签
if (e.target.tagName === 'P') {
// 获取点击的数据
const data = e.target.innerHTML;
console.log('点击的数据:', data);
}
});
// 循环设置每个p标签的动画事件间隔
pElements.forEach(function(p, i) {
// 随机生成动画事件间隔(1000ms到5000ms之间)
const interval = Math.floor(Math.random() * (5000 - 1000) + 1000);
// 设置动画事件间隔
setTimeout(function() {
p.style.animation = 'fade-in 1s ease-in-out';
}, interval * i);
});
```
以上代码实现了一个黑色背景的div,其中包含了一些数字圆(使用p标签),每个数字圆都有一个唯一的id。通过点击数字圆,可以在控制台中打印出点击的数据。另外,每个数字圆也会根据随机生成的动画事件间隔逐个出现,以实现动画效果。
阅读全文