原生JavaScript图片轮播插件封装实现
作者:木棉时间:2026-10-22 06:12:29浏览:630
本文详细介绍如何封装一个基于jQuery的图片轮播插件。通过获取图片元素与按钮节点,结合CSS样式布局,实现自动播放、左右切换及指示器联动功能。文章提供了完整的HTML结构、CSS样式及JS调用代码,帮助开发者快速掌握轮播组件的构建方法。
插件概述与核心逻辑
本文分享了一个JavaScript图片轮播插件的具体实现代码,供读者参考学习。
该封装好的轮播插件使用简便,仅需获取图片元素和按钮节点即可完成配置。
CSS样式部分定义了轮播容器的布局与外观。
CSS样式定义
.body{
width: 700px;
margin: 100px auto;
position: relative;
height: 300px;
overflow: hidden;
}
.body img{
width: 700px;
position: absolute;
display: none;
}
.body ul{
position: absolute;
bottom: 3px;
left: 50%;
transform: translateX(-50%);
}
.body li{
list-style: none;
float: left;
width: 15px;
height: 15px;
border-radius: 50px;
background: none;
border: 2px solid #fff;
margin-right: 10px;
cursor: pointer;
}
.active{
background-color: #fff !important;
}
.body a{
text-decoration: none;
position: absolute;
display: block;
top: 50%;
transform: translateY(-50%);
height: 50px;
width: 30px;
background-size: 100% 60%;
background-color: rgba(0,0,0,0.3);
}
.left{
left: 0;
background: url('../img/left.png') no-repeat center center;
}
.right{
right: 0;
background: url('../img/right.png') no-repeat center center;
}
以下是页面结构的HTML代码实现。
HTML页面结构
<body>
<div class="body">
<img src="img/1.jpg">
<img src="img/2.jpg">
<img src="img/3.jpg">
<ul>
<li class="active"></li>
<li></li>
<li></li>
</ul>
<a href="javascript:;" class="left"></a>
<a href="javascript:;" class="right"></a>
</div>
接下来是插件调用的JavaScript代码部分。
插件调用示例
<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script>
<script type="text/javascript" src="js/slider.js"></script>
<script type="text/javascript">
$.slider({
imgElement:$(".body img"),
liElement:$(".body li"),
leftBtn:$(".left"),
rightBtn:$(".right"),
time:2000
})
</script>
以下是封装好的插件核心代码。
插件封装源码
(function($){
function slider(options){
this.opts=$.extend({},slider.defaluts,options);
this._imgSlider();
}
//设置默认值
slider.defaluts={
imgElement:null,
liElement:null,
leftBtn:null,
rightBtn:null,
time:2000
}
slider.prototype._imgSlider=function(){
var opts=this.opts,
index=0,
len=opts.imgElement.length,
timeInter=null;
if(opts.imgElement=='') return;
opts.imgElement.eq(0).show();
showTime();
//当鼠标经过 轮播停止,移开继续
opts.imgElement.hover(function() {
clearInterval(timeInter);
}, function() {
showTime();
});
//点击li 显示对应的图片
opts.liElement.click(function(){
var id=$(this).index();
show(id);
});
//向左向右
opts.leftBtn.click(function(){
clearInterval(timeInter);
--index;
index=Math.max(0,index);
show(index);
showTime();
});
opts.rightBtn.click(function(){
clearInterval(timeInter);
++index;
index=Math.min(len-1,index);
show(index);
showTime();
});
function showTime(){
timeInter=setInterval(function(){
index++;
if(index>len){
index=0;
}
show(index);
},opts.time);
}
function show(index){
opts.imgElement.eq(index).fadeIn(1000).siblings('img').fadeOut(1000);
opts.liElement.eq(index).addClass('active').siblings('li').removeClass('active');
}
}
$.extend({
slider:function(options){
new slider(options);
}
})
})(jQuery)
最终实现的效果图如下所示。

相关专题推荐:jQuery图片轮播、JavaScript图片轮播、Bootstrap图片轮播。
以上内容希望对大家有所帮助,欢迎继续支持本站获取更多技术资源。
作者最新文章
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
2026-11-05 09:45:01
为什么JS中typeof []返回object:数组类型检测误区解析
2026-11-04 19:50:47
D3.js 新手入门:环境搭建与第一个条形图实现
2026-11-04 10:49:48
