jQuery实现图片轮播效果:HTML结构与JS逻辑详解

作者:交互手记时间:2026-10-27 14:32:00浏览:472

本文详细介绍使用jQuery实现图片轮播的具体步骤。通过构建包含图片列表与导航数字的HTML结构,配合CSS绝对定位与样式美化,最后利用jQuery的animate方法实现平滑滚动,并结合setInterval与hover事件完成自动播放及鼠标交互控制。

jQuery图片轮播实现详解

最终呈现的效果如下图所示:

jQuery图片轮播实现详解

首先查看HTML结构及其对应的CSS样式代码:

具体HTML代码如下:

<div id="scrollPics">
<ul class="slider" >
<li><img src="images/ads/1.gif"/></li>
<li><img src="images/ads/2.gif"/></li>
<li><img src="images/ads/3.gif"/></li>
<li><img src="images/ads/4.gif"/></li>
<li><img src="images/ads/5.gif"/></li>
</ul>
<ul class="num" >
<li class="on">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>

对应的CSS样式代码如下:

#scrollPics{
height: 150px;
width: 100%;
margin-bottom: 10px;
overflow: hidden;
position:relative;
}
.num{
position:absolute;
right:5px;
bottom:5px;
}
#scrollPics .num li{
float: left;
color: #FF7300;
text-align: center;
line-height: 16px;
width: 16px;
height: 16px;
cursor: pointer;
overflow: hidden;
margin: 3px 1px;
border: 1px solid #FF7300;
background-color: #fff;
}
#scrollPics .num li.on{
color: #fff;
line-height: 21px;
width: 21px;
height: 21px;
font-size: 16px;
margin: 0 1px;
border: 0;
background-color: #FF7300;
font-weight: bold;
}

通过绝对定位确定导航列表num的位置,并对列表项li设置相应样式。其中.on类用于标识当前显示图片对应的数字样式。

接下来是JavaScript代码部分:

具体JS代码如下:

//滚动广告
var len = $(".num > li").length;
var index = 0; //图片序号
var adTimer;
$(".num li").mouseover(function() {
index = $(".num li").index(this); //获取鼠标悬浮 li 的index
showImg(index);
}).eq(0).mouseover();
//滑入停止动画,滑出开始动画.
$('#scrollPics').hover(function() {
clearInterval(adTimer);
}, function() {
adTimer = setInterval(function() {
showImg(index)
index++;
if (index == len) { //最后一张图片之后,转到第一张
index = 0;
            }
}, 3000);
}).trigger("mouseleave");
function showImg(index) {
 var adHeight = $("#scrollPics>ul>li:first").height();
 $(".slider").stop(true, false).animate({
 "marginTop": -adHeight * index + "px" //改变 marginTop 属性的值达到轮播的效果
 }, 1000);
 $(".num li").removeClass("on")
 .eq(index).addClass("on");
 }
作者最新文章