单击第一个按钮,令图片先淡出,然后换成另外一张图片再淡入……实现a1.gif~a9.gif这九张图片依次交替显示的效果。单击第二个按钮,页面重新加载
时间: 2024-03-13 13:48:11 浏览: 72
好的,这是一个比较简单的前端交互效果,可以用JavaScript实现。以下是具体实现的步骤:
1. 在HTML中创建两个按钮,一个用于切换图片,另一个用于重新加载页面。
```html
<button id="switch-btn">切换图片</button>
<button id="reload-btn">重新加载页面</button>
<div id="image-container">
<img src="a1.gif" id="image">
</div>
```
2. 在CSS中设置图片容器的宽高,并将所有图片的opacity设置为0,使它们不可见。
```css
#image-container {
width: 500px;
height: 500px;
position: relative;
}
#image {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
}
```
3. 在JavaScript中获取按钮和图片元素,并创建一个数组保存所有图片的文件名。
```javascript
const switchBtn = document.getElementById('switch-btn');
const reloadBtn = document.getElementById('reload-btn');
const image = document.getElementById('image');
const imageNames = ['a1.gif', 'a2.gif', 'a3.gif', 'a4.gif', 'a5.gif', 'a6.gif', 'a7.gif', 'a8.gif', 'a9.gif'];
let currentIndex = 0;
```
4. 实现图片切换的功能。当点击切换按钮时,先将当前图片淡出,然后将下一张图片换上,并淡入显示。
```javascript
switchBtn.addEventListener('click', () => {
const nextIndex = (currentIndex + 1) % imageNames.length;
const nextImage = new Image();
nextImage.src = imageNames[nextIndex];
nextImage.style.opacity = '0';
nextImage.onload = () => {
image.style.transition = 'opacity 0.5s';
image.style.opacity = '0';
setTimeout(() => {
image.src = nextImage.src;
image.style.opacity = '1';
currentIndex = nextIndex;
}, 500);
}
});
```
5. 实现重新加载页面的功能。当点击重新加载按钮时,直接调用location.reload()方法即可。
```javascript
reloadBtn.addEventListener('click', () => {
location.reload();
});
```
完成以上步骤后,就可以实现题目要求的效果了。
阅读全文