jQuery 一个图片切换的插件

 更新时间:2011年10月09日 23:10:25   作者:  
B/S开发的朋友,首页常常需要一些新闻图片切换的特效,鉴于jQuery良好的插件开发机制,我也常常自己写一些实用的小插件,这里分享一个新闻图片切换插件
以下是参数说明:
 参数名称  描述
 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://www.jb51.net"><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.jb51.net"><img src="images/5.jpg" alt="漂亮的风景图片五" /></a>
<a href="http://s.jb51.net"><img src="images/3.jpg" alt="漂亮的风景图片六" /></a>
</div>
<script>
$("#scroll").ImageScroll();
</script>

- 运行结果


- 带参数调用

复制代码 代码如下:

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

- 运行结果

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

相关文章

  • jquery图片延迟加载 前端开发技能必备系列

    jquery图片延迟加载 前端开发技能必备系列

    在网上经常会看到一些很长的网页会延迟加载其中的图片,我认为这是一种按需分配的做法,网页只为那些想继续浏览网页的人加载后面的图片,在不影响用户体验的前提下,最大程度地减少服务器负担和流量
    2012-06-06
  • jquery根据td给相同tr下其他td赋值的实现方法

    jquery根据td给相同tr下其他td赋值的实现方法

    下面就为大家带来一篇jquery根据td给相同tr下其他td赋值的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • JQuery Ajax跨域调用和非跨域调用问题实例分析

    JQuery Ajax跨域调用和非跨域调用问题实例分析

    这篇文章主要介绍了JQuery Ajax跨域调用和非跨域调用问题,结合具体实例形式分析了jQuery基于ajax的非跨域请求及跨域请求相关实现技巧与操作注意事项,需要的朋友可以参考下
    2019-04-04
  • 基于JQuery 的消息提示框效果代码

    基于JQuery 的消息提示框效果代码

    本身不熟悉js略懂JQuery,闲着没事帮朋友公司一个程序小伙修改了个消息提示框,把修改后的代码和代价分享一下
    2011-07-07
  • jquery实现下拉框多选方法介绍

    jquery实现下拉框多选方法介绍

    本文是利用EasyUI实现下拉框多选功能,在ComboxTree其原有的基础上对样式进行了改进,样式表已上传demo,下面跟着小编一起来看下吧
    2017-01-01
  • 读jQuery之二(两种扩展)

    读jQuery之二(两种扩展)

    上一篇分析了jQuery对象的组成,这篇分析下它的extend方法。
    2011-06-06
  • jquery实现浮动的侧栏实例

    jquery实现浮动的侧栏实例

    这篇文章主要介绍了jquery实现浮动的侧栏,实例分析了基于jQuery的stickySidebar插件实现浮动层的相关技巧,需要的朋友可以参考下
    2015-06-06
  • jQuery Select下拉框操作小结(推荐)

    jQuery Select下拉框操作小结(推荐)

    这篇文章主要介绍了jQuery Select下拉框操作小结(推荐)的相关资料,非常实用,在前端开发经常可以用到,需要的朋友可以参考下
    2016-07-07
  • jQuery $.each遍历对象、数组用法实例

    jQuery $.each遍历对象、数组用法实例

    这篇文章主要介绍了jQuery $.each遍历对象、数组用法实例,本文讲解了在有参数和无参数的情况下遍历对象及遍历数组的例子及each方法的几种常用用法,需要的朋友可以参考下
    2015-04-04
  • JQUERY dialog的用法详细解析

    JQUERY dialog的用法详细解析

    本篇文章主要是对JQUERY中dialog的用法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12

最新评论