jQuery 一个图片切换的插件


Posted in Javascript onOctober 09, 2011

以下是参数说明:

 参数名称  描述
 delay  图片切换速度,单位毫秒
 maskOpacity  遮罩层透明度,1为不透明,0为全透明
 numOpacity  数字按钮透明度,1为不透明,0为全透明
 maskBgColor  遮罩层背景色
 textColor  标题字体颜色
 numColor  数字按钮字体颜色
 numBgColor  数字按钮背景色
 alterColor  数字按钮选中项字体颜色
 alterBgColor  数字按钮选中项背景颜色
插件代码及调用
- 插件名称:ImageScroll
(function($){ 
$.fn.ImageScroll = function(options) { 
var defaults = { 
delay: 2000, 
maskOpacity: 0.6, 
numOpacity: 0.6, 
maskBgColor: "#000", 
textColor: "#fff", 
numColor: "#fff", 
numBgColor: "#000", 
alterColor: "#fff", 
alterBgColor: "#999" 
}; 
options = $.extend(defaults, options); 
var _this = $(this).css("display", "none"); 
var _links = [], _texts = [], _urls = []; 
var _list = _this.find("a"); 
var _timer; 
var _index = 0; 
_list.each(function(index){ 
var temp = $(this).find("img:eq(0)"); 
_links.push($(this).attr("href")); 
_texts.push(temp.attr("alt")); 
_urls.push(temp.attr("src")); 
}); 
if(_list.length <= 0) { 
return; 
} 
else { 
_this.html(""); 
} 
var _width = _this.width(); 
var _height = _this.height(); 
var _numCount = _list.length; 
var _numColumn = Math.ceil(_numCount / 2); 
var _img = $("<a/>").css({"display":"block", "position":"absolute","top":"0px","left":"0px", "z-index":"2", "width":_width+"px", "height":_height+"px", "background":"url("+_urls[0]+")"}).appendTo(_this); 
var _mask = $("<div/>").attr("style","opacity:"+options.maskOpacity) 
.css({"position":"absolute", "left":"0px", "bottom":"0px", "z-index":"3", "width":_width+"px", "height":"46px", "opacity":options.maskOpacity, "background-color":options.maskBgColor}).appendTo(_this); 
var _num = $("<div/>").attr("style","opacity:"+options.numOpacity) 
.css({"position":"absolute", "right":"0px", "bottom":"0px", "z-index":"5", "width":_numColumn*22, "opacity":options.numOpacity, "height":"44px"}).appendTo(_this); 
var _text = $("<div/>").css({"position":"absolute", "left":"0px", "bottom":"0px", "z-index":"4", "padding-left":"10px", "height":"44px", "line-height":"44px", "color":options.textColor}).html(_texts[0]).appendTo(_this); 
for(var i = 0; i < _numCount; i++) 
{ 
$("<a/>").html(i+1) 
.css({"float":"left", "width":"20px", "height":"20px", "text-align":"center", "background-color":options.numBgColor, "margin":"0px 2px 2px 0px", "cursor":"pointer", "line-height":"20px", "color":options.numColor}) 
.mouseover(function() { 
if(_timer) { 
clearInterval(_timer); 
} 
}).mouseout(function() { 
_timer = setInterval(alter, options.delay); 
}).click(function(){ 
numClick($(this)); 
}).appendTo(_num); 
} 
var _tempList = _num.find("a"); 
function alter() { 
if(_index > _numCount-1) { 
_index = 0; 
} 
_tempList.eq(_index).click(); 
} 
function numClick(obj) { 
var i = _tempList.index(obj); 
_tempList.css({"background-color":options.numBgColor, "color":options.numColor}); 
obj.css({"background-color":options.alterBgColor, "color":options.alterColor}); 
_img.attr({"href":_links[i], "target":"_blank"}) 
.css({"opacity":"0", "background":"url("+_urls[i]+")"}) 
.animate({"opacity":"1"}, 500); 
_text.html(_texts[i]); 
_index = i + 1; 
} 
setTimeout(alter, 10); 
_timer = setInterval(alter, options.delay); 
_this.css("display", "block"); 
}; 
})(jQuery);

- 调用代码
<script src="js/jquery-1.4.2.min.js" type="text/javascript"></script> 
<script src="js/jquery.ImageScroll.js" type="text/javascript"></script> 
<style type="text/css"> 
<!-- 
body { 
font-family: Verdana, Arial, Helvetica, sans-serif; 
font-size: 12px; 
} 
#scroll { position:relative; width:450px; height:300px; } 
--> 
</style> 
<div id="scroll"> 
<a href="http://www.baidu.com"><img src="images/1.jpg" alt="漂亮的风景图片一" /></a> 
<a href="https://3water.com"><img src="images/2.jpg" alt="漂亮的风景图片二" /></a> 
<a href="http://www.codeplex.com"><img src="images/3.jpg" alt="漂亮的风景图片三" /></a> 
<a href="http://www.codeproject.com"><img src="images/4.jpg" alt="漂亮的风景图片四" /></a> 
<a href="http://sc.3water.com"><img src="images/5.jpg" alt="漂亮的风景图片五" /></a> 
<a href="http://s.3water.com"><img src="images/3.jpg" alt="漂亮的风景图片六" /></a> 
</div> 
<script> 
$("#scroll").ImageScroll(); 
</script>

- 运行结果

jQuery 一个图片切换的插件
- 带参数调用

<script> 
$("#scroll").ImageScroll({delay:500, maskBgColor:"#ff0000"}); 
</script>

- 运行结果
jQuery 一个图片切换的插件
小结

只是个小插件,可定制性可能不是很好,大家随便看看和修改好了,貌似IE8好像还有个小bug,一会修正了再上传,大家有什么bug发现,请回复告诉我,方便我及时修正,有代码上的优化意见,也请告诉我,帮助我这个新人学习,=.=

Javascript 相关文章推荐
使用jQuery实现的网页版的个人简历(可换肤)
Apr 19 Javascript
JS 打印功能代码可实现打印预览、打印设置等
Oct 31 Javascript
javascript 动态创建表格的2种方法总结
Mar 04 Javascript
jquery实现表格本地排序的方法
Mar 11 Javascript
jQuery AjaxUpload 上传图片代码
Feb 02 Javascript
JavaScript使用键盘输入控制实现数字验证功能
Aug 19 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
Feb 10 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
Jun 21 Javascript
JavaScript之class继承_动力节点Java学院整理
Jul 03 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
Aug 23 Javascript
阿望教你用vue写扫雷小游戏
Jan 20 Javascript
TypeScript 运行时类型检查补充工具
Sep 28 Javascript
跨域请求之jQuery的ajax jsonp的使用解惑
Oct 09 #Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
Oct 09 #Javascript
jquery利用event.which方法获取键盘输入值的代码
Oct 09 #Javascript
javascript之bind使用介绍
Oct 09 #Javascript
javascript之querySelector和querySelectorAll使用说明
Oct 09 #Javascript
使用jQuery操作Cookies的实现代码
Oct 09 #Javascript
jQuery实现切换页面布局使用介绍
Oct 09 #Javascript
You might like
Php+SqlServer实现分页显示
2006/10/09 PHP
php 小乘法表实现代码
2009/07/16 PHP
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
Nodejs实现批量下载妹纸图
2015/05/28 NodeJs
jQuery链式操作实例分析
2015/11/16 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
JS实现获取剪贴板内容的方法
2016/06/21 Javascript
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
JavaScript 中的 this 工作原理
2018/06/20 Javascript
基于vue实现移动端圆形旋钮插件效果
2018/11/28 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
2020/05/03 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
javascript实现图片轮换动作方法
2020/08/07 Javascript
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
在Python中处理XML的教程
2015/04/29 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
Python代码实现http/https代理服务器的脚本
2019/08/12 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
2019/08/30 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
美国批发零售网站:GearXS
2016/07/26 全球购物
Foot Locker德国官方网站:美国运动服和鞋类零售商
2018/11/01 全球购物
国际贸易专业个人求职信格式
2014/02/02 职场文书
四群教育工作实施方案
2014/03/26 职场文书
投标保密承诺书
2014/05/19 职场文书
52条SQL语句教你性能优化
2021/05/25 MySQL