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 相关文章推荐
去掉gridPanel表头全选框的小例子
Jul 18 Javascript
深入理解javascript中defer的作用
Dec 11 Javascript
jQuery操作DOM之获取表单控件的值
Jan 23 Javascript
浅谈javascript中call()、apply()、bind()的用法
Apr 20 Javascript
JavaScript基于对象去除数组重复项的方法
Oct 09 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
Nov 10 Javascript
AngularJS服务service用法总结
Dec 13 Javascript
JavaScript高阶函数_动力节点Java学院整理
Jun 28 Javascript
jquery select插件异步实时搜索实例代码
Oct 20 jQuery
vue项目在安卓低版本机显示空白的原因分析(两种)
Sep 04 Javascript
vue页面切换过渡transition效果
Oct 08 Javascript
纯JS开发baguetteBox.js响应式画廊插件
Jun 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处理JSON字符串key缺少双引号的解决方法
2014/09/16 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
基于Vuejs框架实现翻页组件
2020/06/29 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成&quot;...&quot;)
2016/11/28 Javascript
vuejs如何配置less
2017/04/25 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
深入理解NodeJS 多进程和集群
2018/10/17 NodeJs
一秒学会微信小程序制作table表格
2019/02/14 Javascript
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
Python编程中用close()方法关闭文件的教程
2015/05/24 Python
全面理解Python中self的用法
2016/06/04 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
通过python实现弹窗广告拦截过程详解
2019/07/10 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
css3 media 响应式布局的简单实例
2016/08/03 HTML / CSS
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
英国最大的香水商店:The Fragrance Shop
2018/07/06 全球购物
Ariat官网:美国马靴和服装品牌
2019/12/16 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
企业管理专业个人求职信范文
2013/09/24 职场文书
工程管理造价应届生求职信
2013/11/13 职场文书
大四学生思想汇报
2014/01/13 职场文书
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
环保倡议书50字
2014/05/15 职场文书
企业爱心捐款倡议书
2015/04/27 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书