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 相关文章推荐
document 和 document.all 分别什么时候用
Jun 22 Javascript
用javascript实现画板的代码
Sep 05 Javascript
xml和web特殊字符
Apr 28 Javascript
自己动手开发jQuery插件教程
Aug 25 Javascript
构造函数+原型模式构造js自定义对象(最通用)
May 12 Javascript
JS中script标签defer和async属性的区别详解
Aug 12 Javascript
jQuery编写设置和获取颜色的插件
Jan 09 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
Feb 22 Javascript
优雅的在React项目中使用Redux的方法
Nov 10 Javascript
在Vue.js中使用TypeScript的方法
Mar 19 Javascript
解决vue项目 build之后资源文件找不到的问题
Sep 12 Javascript
JavaScript最完整的深浅拷贝实现方式详解
Feb 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版(1)
2006/10/09 PHP
php excel类 phpExcel使用方法介绍
2010/08/21 PHP
php实现的click captcha点击验证码类实例
2014/09/23 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
2015/12/25 PHP
PHP中的session安全吗?
2016/01/22 PHP
Laravel监听数据库访问,打印SQL的例子
2019/10/24 PHP
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
对frameset、frame、iframe的js操作示例代码
2013/08/16 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
微信小程序  生命周期详解
2016/10/27 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
2019/05/31 jQuery
vue 路由缓存 路由嵌套 路由守卫 监听物理返回操作
2020/08/06 Javascript
python模块之re正则表达式详解
2017/02/03 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
Django外键(ForeignKey)操作以及related_name的作用详解
2019/07/29 Python
django-初始配置(纯手写)详解
2019/07/30 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
解决在keras中使用model.save()函数保存模型失败的问题
2020/05/21 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
泰海淘:泰国king Power王权免税集团旗下跨境海淘综合型电商
2020/07/26 全球购物
企业项目策划书
2014/01/11 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
优秀团员主要事迹范文
2015/11/05 职场文书
毕业生自荐求职信书写的技巧
2019/08/26 职场文书
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL