用jQuery实现7幅图片轮换显示,不单击下面的超链接是,上面图片自动切换;单击下面的超链接时,上面显示对应的大图
时间: 2024-05-01 22:22:34 浏览: 133
以下是一个简单的实现:
HTML代码:
```html
<div id="slider">
<img src="image1.jpg" alt="Image 1">
<img src="image2.jpg" alt="Image 2">
<img src="image3.jpg" alt="Image 3">
<img src="image4.jpg" alt="Image 4">
<img src="image5.jpg" alt="Image 5">
<img src="image6.jpg" alt="Image 6">
<img src="image7.jpg" alt="Image 7">
</div>
<div id="thumbnails">
<a href="#" data-index="0"><img src="thumb1.jpg" alt="Thumbnail 1"></a>
<a href="#" data-index="1"><img src="thumb2.jpg" alt="Thumbnail 2"></a>
<a href="#" data-index="2"><img src="thumb3.jpg" alt="Thumbnail 3"></a>
<a href="#" data-index="3"><img src="thumb4.jpg" alt="Thumbnail 4"></a>
<a href="#" data-index="4"><img src="thumb5.jpg" alt="Thumbnail 5"></a>
<a href="#" data-index="5"><img src="thumb6.jpg" alt="Thumbnail 6"></a>
<a href="#" data-index="6"><img src="thumb7.jpg" alt="Thumbnail 7"></a>
</div>
```
CSS代码:
```css
#slider {
position: relative;
width: 500px;
height: 350px;
overflow: hidden;
}
#slider img {
position: absolute;
top: 0;
left: 0;
opacity: 0;
transition: opacity 0.5s ease-in-out;
}
#slider img.active {
opacity: 1;
}
#thumbnails {
display: flex;
justify-content: center;
margin-top: 10px;
}
#thumbnails a {
margin: 0 10px;
}
#thumbnails img {
width: 50px;
height: 50px;
cursor: pointer;
}
```
JavaScript代码:
```javascript
$(document).ready(function() {
var $slider = $('#slider');
var $thumbnails = $('#thumbnails');
var $images = $slider.find('img');
var numImages = $images.length;
var currentIndex = 0;
var intervalId;
// 显示指定索引的图片
function showImage(index) {
// 隐藏当前显示的图片
$images.filter('.active').removeClass('active').animate({opacity: 0}, 500);
// 显示指定索引的图片
$images.eq(index).addClass('active').animate({opacity: 1}, 500);
// 更新索引
currentIndex = index;
}
// 自动轮换图片
function startInterval() {
intervalId = setInterval(function() {
var nextIndex = (currentIndex + 1) % numImages;
showImage(nextIndex);
}, 3000);
}
// 停止轮换图片
function stopInterval() {
clearInterval(intervalId);
}
// 点击缩略图切换图片
$thumbnails.on('click', 'a', function(event) {
event.preventDefault();
var index = $(this).data('index');
showImage(index);
stopInterval();
});
// 自动轮换图片
startInterval();
});
```
代码解释:
1. 在HTML中,我们创建了一个`<div>`容器来显示图片,以及一个包含缩略图的`<div>`容器。
2. 在CSS中,我们设置了图片和缩略图的样式。图片使用绝对定位,并设置了`opacity`属性以实现渐变效果,缩略图使用了Flex布局。
3. 在JavaScript中,我们使用jQuery选择器获取`<div>`容器、图片和缩略图。我们还声明了一些变量,包括图片数量、当前索引和定时器ID。
4. 我们定义了一个`showImage()`函数,用于显示指定索引的图片。该函数首先隐藏当前显示的图片,然后显示指定索引的图片,并更新当前索引。
5. 我们定义了一个`startInterval()`函数,用于自动轮换图片。该函数使用`setInterval()`函数设置一个定时器,每隔3秒钟切换到下一张图片,并调用`showImage()`函数来显示该图片。
6. 我们定义了一个`stopInterval()`函数,用于停止自动轮换图片。该函数使用`clearInterval()`函数清除定时器。
7. 我们使用jQuery的事件委托机制,为缩略图添加了一个点击事件处理程序。当用户单击缩略图时,我们调用`showImage()`函数来显示对应的图片,并调用`stopInterval()`函数停止自动轮换图片。
8. 最后,我们调用`startInterval()`函数来开始自动轮换图片。
阅读全文