html,js实现定时切换或者图片轮播效果。并且添加左右tab切换效果。
时间: 2024-02-21 21:57:54 浏览: 24
好的,以下是一个简单的html和js实现轮播效果,并添加了左右tab切换的代码:
HTML代码:
```html
<div id="slider">
<img class="slide" src="image1.jpg">
<img class="slide" src="image2.jpg">
<img class="slide" src="image3.jpg">
<img class="slide" src="image4.jpg">
<img class="slide" src="image5.jpg">
</div>
<div id="tabs">
<div class="tab active"></div>
<div class="tab"></div>
<div class="tab"></div>
<div class="tab"></div>
<div class="tab"></div>
</div>
```
CSS代码:
```css
#slider {
width: 600px;
height: 400px;
overflow: hidden;
position: relative;
}
.slide {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
transition: opacity 1s ease-in-out;
}
.slide.active {
opacity: 1;
}
#tabs {
margin-top: 10px;
display: flex;
justify-content: center;
}
.tab {
width: 20px;
height: 20px;
border-radius: 50%;
background-color: gray;
margin: 0 5px;
cursor: pointer;
}
.tab.active {
background-color: black;
}
```
JS代码:
```javascript
var slides = document.querySelectorAll('.slide');
var tabs = document.querySelectorAll('.tab');
var current = 0;
function reset() {
for (var i = 0; i < slides.length; i++) {
slides[i].classList.remove('active');
tabs[i].classList.remove('active');
}
}
function startSlide() {
reset();
slides[0].classList.add('active');
tabs[0].classList.add('active');
}
function slideLeft() {
reset();
current--;
if (current < 0) {
current = slides.length - 1;
}
slides[current].classList.add('active');
tabs[current].classList.add('active');
}
function slideRight() {
reset();
current++;
if (current > slides.length - 1) {
current = 0;
}
slides[current].classList.add('active');
tabs[current].classList.add('active');
}
tabs.forEach(function(tab, index) {
tab.addEventListener('click', function() {
reset();
current = index;
slides[current].classList.add('active');
tabs[current].classList.add('active');
});
});
startSlide();
setInterval(function() {
slideRight();
}, 5000);
```
解释一下代码:
1. HTML代码中,我们使用`<div>`来包含轮播图,使用`<img>`来展示每张图片。同时,我们使用一个`<div>`来包含tab标签,通过CSS实现tab标签样式,并使用JS来实现tab的切换效果。
2. CSS代码中,我们设置`#slider`的宽高、overflow属性为隐藏,并将每张图片的position属性设置为绝对定位,使它们可以重叠在一起,然后使用opacity和transition属性让它们可以淡入淡出切换。
3. JS代码中,我们使用`querySelectorAll()`方法获取轮播图和tab标签,然后定义了一些函数,如`reset()`函数用于重置轮播图和tab标签的状态,`startSlide()`函数用于开始轮播,`slideLeft()`和`slideRight()`函数用于左右切换。我们通过循环遍历tab标签,并使用`addEventListener()`方法监听tab标签的点击事件,然后调用`reset()`函数和设置轮播图和tab标签的`active`类来实现tab的切换效果。最后,我们使用`setInterval()`方法来设置定时器,使轮播图可以自动切换。