使用jquery的siblings函数完成图片轮播
时间: 2023-12-02 12:06:25 浏览: 24
好的,以下是使用 jQuery 的 siblings 函数完成图片轮播的代码示例:
HTML 代码:
```html
<div class="slideshow">
<img src="image1.jpg" alt="Image 1">
<img src="image2.jpg" alt="Image 2">
<img src="image3.jpg" alt="Image 3">
</div>
<div class="slideshow-buttons">
<button class="active"></button>
<button></button>
<button></button>
</div>
```
CSS 代码:
```css
.slideshow {
position: relative;
width: 500px;
height: 300px;
overflow: hidden;
}
.slideshow img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
transition: opacity 1s;
}
.slideshow img.active {
opacity: 1;
}
.slideshow-buttons button {
background-color: #ccc;
border: none;
width: 10px;
height: 10px;
border-radius: 50%;
margin-right: 5px;
cursor: pointer;
}
.slideshow-buttons button.active {
background-color: #333;
}
```
JavaScript 代码:
```javascript
$(function() {
var slideIndex = 0,
slides = $('.slideshow img'),
buttons = $('.slideshow-buttons button');
function showSlide(index) {
slides.filter('.active').removeClass('active').siblings().eq(index).addClass('active');
buttons.filter('.active').removeClass('active').siblings().eq(index).addClass('active');
}
buttons.click(function() {
var index = $(this).index();
slideIndex = index;
showSlide(index);
});
setInterval(function() {
slideIndex++;
if (slideIndex >= slides.length) {
slideIndex = 0;
}
showSlide(slideIndex);
}, 5000);
});
```
解释一下代码:
首先,我们定义了一个变量 `slideIndex` 表示当前图片的索引。然后,我们使用 `$` 函数选择轮播图片和轮播按钮,分别赋值给 `slides` 和 `buttons` 变量。接下来,我们定义了一个 `showSlide` 函数,用于显示指定索引的图片和按钮。在 `showSlide` 函数中,我们使用 `filter` 函数和 `siblings` 函数找到当前显示的图片和按钮,并将其隐藏,然后使用 `eq` 函数找到下一张图片和按钮,并将其显示出来。最后,我们使用 `click` 函数为轮播按钮绑定点击事件,当点击按钮时,我们获取其索引值,更新 `slideIndex` 变量,并调用 `showSlide` 函数显示指定索引的图片和按钮。最后,我们使用 `setInterval` 函数每隔 5 秒钟自动轮播一次图片。在自动轮播时,我们先将 `slideIndex` 变量加 1,如果超出了图片数量,则将其重置为 0,然后调用 `showSlide` 函数显示指定索引的图片和按钮。
希望这个代码示例能帮助您完成图片轮播。