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 数组的方法集合
Jun 05 Javascript
jquery获取元素值的方法(常见的表单元素)
Nov 15 Javascript
javascript与css3动画结合使用小结
Mar 11 Javascript
JavaScript数据类型之基本类型和引用类型的值
Apr 01 Javascript
js实现文字垂直滚动和鼠标悬停效果
Dec 31 Javascript
JS 拦截全局ajax请求实例解析
Nov 29 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
Dec 28 Javascript
原生JS实现垂直手风琴效果
Feb 19 Javascript
vue组件生命周期详解
Nov 07 Javascript
vue-router实现嵌套路由的讲解
Jan 19 Javascript
Vue中遍历数组的新方法实例详解
Jul 21 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
Nov 06 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+AJAX实现无刷新注册(带用户名实时检测)
2006/12/02 PHP
php 连接mssql数据库 初学php笔记
2010/03/01 PHP
PHP页面中文乱码分析
2013/10/29 PHP
php判断是否为json格式的方法
2014/03/04 PHP
php递归遍历多维数组的方法
2015/04/18 PHP
php用户登录之cookie信息安全分析
2016/05/13 PHP
ThinkPHP中create()方法自动验证表单信息
2017/04/28 PHP
jQuery的一些注意
2006/12/06 Javascript
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
TBCompressor js代码压缩
2011/01/05 Javascript
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
如何获取select下拉框的值(option没有及有value属性)
2013/11/08 Javascript
可自定义速度的js图片无缝滚动示例分享
2014/01/20 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
javascript实现倒计时N秒后网页自动跳转代码
2014/12/11 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
2017/06/02 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
2019/09/06 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
vue+vant实现购物车全选和反选功能
2020/11/17 Vue.js
js实现筛选功能
2020/11/24 Javascript
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
Python常用的日期时间处理方法示例
2015/02/08 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
Django URL传递参数的方法总结
2016/08/28 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
python3爬虫中异步协程的用法
2020/07/10 Python
Python中pass的作用与使用教程
2020/11/13 Python
南威尔士家居商店:Leekes
2016/10/25 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
中专生毕业自我鉴定
2013/11/01 职场文书
司考复习计划
2015/01/19 职场文书