jQuery实现简易图片轮播插件及使用方法
作者:阿沐时间:2026-10-30 16:59:31浏览:277
本文分享一个基于jQuery开发的简易图片轮播插件。通过定义picWidth、picHeight和speed等参数,实现图片定时切换、鼠标悬停暂停及离开继续播放的功能。文中提供了完整的jQuery.banner.js源码及HTML调用示例,适合需要轻量级轮播方案的前端开发者参考。
jQuery简易图片轮播插件概述
本文详细介绍了一个基于jQuery开发的简易图片轮播插件及其具体应用方式,旨在为读者提供实用的参考案例。
在频繁使用第三方插件的背景下,本文尝试自主编写一个轮播组件,以此作为技术实践的记录与纪念。
核心插件文件命名为jQuery.banner.js,具体实现逻辑如下所示。
jQuery.banner.js核心源码
/*
* banner 0.1
* 使用banner 实现图片定时切换 鼠标经过停止动画
* 鼠标离开,继续动画
*/
;(function($){
$.fn.banner =function(options){
//各种属性和参数
var defaults ={
picWidth:"1000",
picHeight:"300",
speed:"1500"
};
var totalW = 0; //保存总的动画宽度
var timer = null; //保存定时器
var current = 0; //保存当前动画到第N张图,下次从这里开始
var totalNum = 0; //保存总的图数
var Dsqtime = 0; //定义定时器时间 【外传参数】
var Dhtime = 0; //定义动画时间
var count = 0 ;
//合并多个对象为一个,即有新参数 用新的,否则用默认的
var options = $.extend(defaults, options);
this.each(function(){
//实现代码
var __this = $(this);
Dsqtime = options.speed;
Dhtime = Dsqtime/3;
//初始化
init(__this);
//调用动画
show(__this, options.picWidth,current);
//鼠标经过时事件
__this.find('ul li').bind('mouseover',function(){
window.clearInterval(timer); //清除定时器
});
__this.find('ul li').bind('mouseout',function(){
show(__this, options.picWidth,current);
//接着上一次动画轮播
});
});
//初始化 设定父容器宽度
function init(obj){
obj.find('ul li').each(function(){
totalW += $(this).width();
totalNum++;
});
obj.find('ul').width(totalW);
}
//开始动画显示
function show(obj, width, current){
timer = setInterval(function(){
obj.find('ul').animate({'margin-left':'-'+count*width+'px'},
Dhtime);
current = count;
count++;
if(count == totalNum){
count =0;
}
}, Dsqtime);
}
};
})(jQuery);
对应的HTML结构代码示例如下。
HTML调用示例代码
<!doctype html>
<html>
<head>
<meta charset="utf8"/>
<script type="text/javascript" src="./js/jquery.min.js"></script>
<script type="text/javascript" src="./js/jquery.banner.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.wrap').banner({
picWidth:"1000",
picHeight:"300",
speed:"6000"
});
});
</script>
<style type="text/css">
*{margin:0;padding:0;}
.wrap{width:1000px; height:300px; overflow:hidden; margin:0 auto;}
.wrap ul li{float:left; list-style:none;}
.wrap ul li img{width:1000px;height:300px;}
.clear{clear: both;}
</style>
</head>
<body>
<div>
<div class="wrap">
<ul>
<li><a href="#"><img src="./images/1.jpg"/></a></li>
<li><a href="#"><img src="./images/2.jpg"/></a></li>
<li><a href="#"><img src="./images/3.jpg"/></a></li>
<li><a href="#"><img src="./images/4.jpg"/></a></li>
<li><a href="#"><img src="./images/5.jpg"/></a></li>
</ul>
<div class="clear"></div>
</div>
</div>
</body>
</html>
插件运行后的实际视觉效果如图所示。

如需深入了解jQuery相关技术,建议查阅本站专题《jQuery常用插件及用法总结》、《jQuery扩展技巧总结》、《jQuery切换特效与技巧总结》、《jQuery遍历算法与技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》以及《jquery选择器用法总结》。
期望本文所述内容能对各位在jQuery程序设计方面的学习与应用提供有益帮助。
作者最新文章
为什么叫JavaScript:语言命名由来及与Java的历史渊源
2026-11-05 11:37:48
JS获取当前时间年月日时分秒并格式化为YYYY-MM-DD HH:mm:ss
2026-11-04 21:25:21
不同语言间JS与Java/Python加密结果不一致怎么办
2026-11-04 18:27:23
Mock.js 拦截 Axios 和 Fetch 请求的原理与配置方法
2026-11-04 08:13:59
JS怎么获取当前日期并格式化为YYYY-MM-DD
2026-11-03 18:47:03
