用js制作一个页面,页面上有五幅图像,图像等分在一个圆上,当用户点击页面时,图象逆时钟移动。
时间: 2024-05-03 09:16:44 浏览: 74
js实现的一个时钟页面
好的,我可以给你提供一个基本的思路,希望能帮助你完成这个页面:
1. 首先,在HTML中创建一个圆形容器,设置其宽高相等,且为正方形,再设置其为圆形,例如:
```html
<div class="circle-container"></div>
<style>
.circle-container {
width: 300px;
height: 300px;
border-radius: 50%;
background-color: #ccc;
position: relative;
}
</style>
```
2. 在这个容器中创建五个图像元素,设置它们的定位为绝对定位,并根据它们在圆上的位置,设置它们的left和top值,例如:
```html
<div class="circle-container">
<img src="image1.jpg" class="image image1">
<img src="image2.jpg" class="image image2">
<img src="image3.jpg" class="image image3">
<img src="image4.jpg" class="image image4">
<img src="image5.jpg" class="image image5">
</div>
<style>
.circle-container {
...
}
.image {
position: absolute;
width: 100px;
height: 100px;
}
.image1 {
left: 150px;
top: 0;
}
.image2 {
left: 270px;
top: 150px;
}
.image3 {
left: 150px;
top: 270px;
}
.image4 {
left: 0;
top: 150px;
}
.image5 {
left: 75px;
top: 75px;
}
</style>
```
注意,这里我们采用了一种特殊的布局方式,即将五个图像等分在一个圆上,而不是简单的等距排列。
3. 接下来,我们需要给这个圆形容器添加一个事件监听器,监听用户的点击事件,并在事件处理函数中完成图像的逆时针移动。具体来说,我们可以通过改变图像元素的left和top值,让它们在圆周上进行移动。例如:
```html
<div class="circle-container">
...
</div>
<script>
const images = document.querySelectorAll('.image');
const circle = document.querySelector('.circle-container');
let angle = 0;
const radius = 150;
circle.addEventListener('click', () => {
angle -= 72;
images.forEach((image, index) => {
const x = radius * Math.sin((angle + index * 72) * Math.PI / 180);
const y = radius * Math.cos((angle + index * 72) * Math.PI / 180);
image.style.left = x + 'px';
image.style.top = y + 'px';
});
});
</script>
```
这里,我们首先获取了所有的图像元素和圆形容器元素,然后定义了一个初始角度angle和一个半径radius。在点击事件处理函数中,我们将角度减去72度(即逆时针旋转五分之一),然后根据每个图像元素在圆周上的位置计算它们的left和top值,从而实现图像的移动效果。
希望这个代码能对你有所帮助!
阅读全文