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 相关文章推荐
JavaScript类和继承 constructor属性
Mar 04 Javascript
JavaScript中json使用自己总结
Aug 13 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
Sep 16 Javascript
jquery之别踩白块游戏的简单实现
Jul 25 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
Oct 10 Javascript
jquery 判断是否支持Placeholder属性的方法
Feb 07 Javascript
vue 怎么创建组件及组件使用方法
Jul 27 Javascript
利用Promise自定义一个GET请求的函数示例代码
Mar 20 Javascript
微信小程序分包加载代码实现方法详解
Sep 23 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
Aug 19 Javascript
详解Vue的mixin策略
Nov 19 Vue.js
Vue使用鼠标在Canvas上绘制矩形
Dec 24 Vue.js
跨域请求之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
星际实力自我测试
2020/03/04 星际争霸
PHP安装攻略:常见问题解答(一)
2006/10/09 PHP
php 结果集的分页实现代码
2009/03/10 PHP
php+mysql 实现身份验证代码
2010/03/24 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
php switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
javascript里绝对用的上的字符分割函数总结
2014/07/31 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
提高jQuery性能优化的技巧
2015/08/03 Javascript
JS实现网站菜单拖拽移位效果的方法
2015/09/24 Javascript
JavaScript实现的伸展收缩型菜单代码
2015/10/14 Javascript
深入理解MVC中的时间js格式化
2016/05/19 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
微信小程序实现轨迹回放的示例代码
2019/12/13 Javascript
Python编写合并字典并实现敏感目录的小脚本
2019/02/26 Python
pytorch多进程加速及代码优化方法
2019/08/19 Python
Python的垃圾回收机制详解
2019/08/28 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
python zip()函数的使用示例
2020/09/23 Python
美国眼镜网:GlassesUSA
2017/09/07 全球购物
怎么处理XML的中文问题
2015/03/26 面试题
营销人才自我鉴定范文
2013/12/25 职场文书
演讲比赛策划方案
2014/06/11 职场文书
2014年法务工作总结
2014/12/11 职场文书
优秀少先队辅导员事迹材料
2014/12/24 职场文书
银行员工考核评语
2014/12/31 职场文书
学校会议通知范文
2015/04/15 职场文书