jQuery实现淡入淡出效果轮播图教程
作者:半夏时间:2026-10-31 02:06:25浏览:157
本文介绍如何使用jQuery实现一个简单的淡入淡出效果轮播图。通过调整HTML结构,利用ul列表展示图片,并配合CSS样式定位,最后使用jQuery代码实现自动轮播、手动切换及左右箭头点击功能。代码未做深度优化,适合初学者参考学习。
jQuery淡入淡出轮播图实现
在之前使用JavaScript完成平滑切换的焦点轮播图后,这里尝试使用jQuery编写一个简易的淡入淡出风格轮播组件。该示例代码尚未进行性能优化,HTML结构也做了微调,主要变化是将图片容器由div替换为ul列表。
具体的HTML结构代码如下:
<div id="container">
<ul class="pic">
<li><a href="javascript:;"><img src="DSC01627.jpg" alt="pic1"></a></li>
<li><a href="javascript:;"><img src="DSC01628.jpg" alt="pic2"></a></li>
<li><a href="javascript:;"><img src="DSC02637.jpg" alt="pic3"></a></li>
</ul>
<ul id="position">
<li class="cur"></li>
<li class=""></li>
<li class=""></li>
</ul>
<a href="javascript:;" id="prev" class="arrow"><</a>
<a href="javascript:;" id="next" class="arrow">></a>
</div>
CSS样式设置如下:
*{
margin: 0;
padding: 0;
text-decoration: none;
}
ul{
list-style: none;
}
#container{
position: relative;
width: 400px;
height: 200px;
margin: 20px auto;
}
.pic li {
position: absolute;
top: 0;
left: 0;
display: none;
}
.pic li img {
width: 400px;
height: 200px;
}
#position{
position: absolute;
bottom: 0;
right:0;
margin: 0;
background: #000;
opacity: 0.4;
width: 400px;
text-align: center;
}
#position li{
width: 10px;
height: 10px;
margin:0 2px;
display: inline-block;
-webkit-border-radius: 5px;
border-radius: 5px;
background-color: #afafaf;
}
#position .cur{
background-color: #ff0000;
}
.arrow {
cursor: pointer;
display: none;
line-height: 39px;
text-align: center;
font-size: 36px;
font-weight: bold;
width: 40px;
height: 40px;
position: absolute;
z-index: 2;
top: 50%;
margin-top: -20px; /*width的一半*/
background-color: RGBA(0,0,0,.3);
color: #fff;
}
.arrow:hover {
background-color: RGBA(0,0,0,.7);
}
#container:hover .arrow {
display: block;
}
#prev {
left: 20px;
}
#next {
right: 20px;
}
JavaScript逻辑代码实现如下:
$(function(){
//第一张显示
$(".pic li").eq(0).show();
//鼠标滑过手动切换,淡入淡出
$("#position li").mouseover(function() {
$(this).addClass('cur').siblings().removeClass("cur");
var index = $(this).index();
i = index;//不加这句有个bug,鼠标移出小圆点后,自动轮播不是小圆点的后一个
// $(".pic li").eq(index).show().siblings().hide();
$(".pic li").eq(index).fadeIn(500).siblings().fadeOut(500);
});
//自动轮播
var i=0;
var timer=setInterval(play,2000);
//向右切换
var play=function(){
i++;
i = i > 2 ? 0 : i ;
$("#position li").eq(i).addClass('cur').siblings().removeClass("cur");
$(".pic li").eq(i).fadeIn(500).siblings().fadeOut(500);
}
//向左切换
var playLeft=function(){
i--;
i = i < 0 ? 2 : i ;
$("#position li").eq(i).addClass('cur').siblings().removeClass("cur");
$(".pic li").eq(i).fadeIn(500).siblings().fadeOut(500);
}
//鼠标移入移出效果
$("#container").hover(function() {
clearInterval(timer);
}, function() {
timer=setInterval(play,2000);
});
//左右点击切换
$("#prev").click(function(){
playLeft();
})
$("#next").click(function(){
play();
})
})
相关精彩专题推荐:jQuery图片轮播、JavaScript图片轮播、Bootstrap图片轮播。
以上就是本文的全部内容,希望能为读者的学习提供有益帮助,同时也欢迎大家继续支持本站。
作者最新文章
JavaScript闭包与类(Class)的区别及适用场景对比
2026-11-05 15:48:57
JavaScript入门要学ES6吗?let与箭头函数等新特性解析
2026-11-05 14:49:16
JavaScript 8种数据类型详解:基本类型与引用类型的区别
2026-11-05 14:25:15
怎么在JavaScript中使用async/await优化Ajax异步流程
2026-11-05 13:56:15
JavaScript replace回调函数实现动态正则替换逻辑
2026-11-05 13:52:13
