基于jQuery的淡入淡出可自动切换的幻灯插件


Posted in Javascript onAugust 24, 2010

其实就是一个幻灯效果,考虑到使用方便,就封装成一个插件了.
插件特点
1. 参数高度自定义;
2. 可重复调用且与不影响;
3. 插件文件小,压缩后仅1.04k,开发版3.29k.
演示及下载 

使用方法
1. 引入jQuery库文件及jQuery.iFadeSlide.pack.js插件文件(若页面有其他js文件,可与之合并以减小http请求),引入位置自定义;

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
<script src="js/jquery.iFadeSldie.pack.js"></script>

样式文件无须引入,若使用DEMO中的结构,可直接将样式合并于项目页面中.建议样式自定义.
2. 在页面中调用插件并传入切换元素的参数, 若为空或未传入的参数,均按插件中的默认参数执行.例如如下代码是DEMO演示中的三组幻灯切换调用:
$(function(){ 
//SAMPLE-A调用---未传入任何参数,调用默认参数 
$('div#slide').iFadeSlide(); 
//SAMPLE-B调用---传入新的参数,将覆盖原有参数,未传入的使用默认值 
$('div#slide_b').iFadeSlide({ 
field: $('div#slide_b a'), 
icocon:$('div.ico_b'), 
hoverCls: 'high_b', 
curIndex: 2, //索引值0起始,故此处设置为第3项高亮 
interval: 2000 
}); 
//SAMPLE-C调用---传入新的参数,将覆盖原有参数,未传入的使用默认值 
$('div#slide_c').iFadeSlide({ 
field: $('div#slide_c img'), 
icocon: $('div.ico_c'), 
outTime:100, 
inTime: 200 
}); 
});

注意,调用插件部分须置入插件文件引用后面.
核心代码
;(function($){ 
$.fn.extend({ 
iFadeSlide: function(options){ 
//插件参数初始化 
var iset={ 
field:$('div#slide img'), //切换元素集合 
icocon:$('div.ico'), //索引容器 
hoverCls:'high', //切换至当前索引高亮显示样式 
curIndex:0, //默认高亮显示的索引值,索引值为0起始 
outTime:200, //元素淡出时间(ms) 
inTime:300, //元素淡入时间(ms) 
interval:3000 //元素切换间隔时间(ms) 
}; 
options=options || {}; 
$.extend(iset,options); //合并参数对象.若options传入有新值则覆盖iset中对应值,否则使用默认值. 
//根据切换元素量生成对应的索引值列表并插入到切换区域中 
var ulcon = "<ul>"; 
iset.field.each(function(i){ 
ulcon = ulcon + '<li>' + (i + 1) + '</li>'; 
}); 
ulcon += '</ul>'; 
iset.icocon.append(ulcon); var ico = iset.icocon.find('li'); //索引列表集合 
var size = iset.field.size(); //切换元素量 
var index = 0; //初始索引值 
var clearFun=null; 
//淡出淡入函数 
var fadeFun = function(obj){ 
index = ico.index(obj); //取当前索引值 
//淡出当前可见元素,并通过索引值找到要淡入的元素 
iset.field.filter(':visible').fadeOut(iset.outTime, function(){ 
iset.field.eq(index).fadeIn(iset.inTime); 
}); 
//为当前索引添加高亮样式并移除同级元素中的高亮样式 
$(obj).addClass(iset.hoverCls).siblings().removeClass(iset.hoverCls); 
}; 
//切换函数 
var changeFun = function(){ 
index++; //累积索引值 
if (index == size){index = 0}; //当索引值等于切换元素量时,初始化为0 
ico.eq(index).trigger('mouseleave'); //为当前的索引模拟鼠标划出元素区事件 
}; 
//自动切换函数 
var scrollFun = function(){ 
clearFun = setInterval(function(){ 
changeFun() 
}, iset.interval); 
}; 
//停止自动切换函数 
var stopFun = function(){ 
clearInterval(clearFun); 
}; 
scrollFun(); //初始自动切换 
//索引区域鼠标划入停止自动切换并切换元素至当前索引,鼠标划出初始化索引至当前值(否则鼠标划出切换会乱) 
ico.hover(function(){ 
stopFun(); 
fadeFun(this); 
}, function(){ 
fadeFun(this); 
}).eq(iset.curIndex).mouseleave(); //初始高亮显示的索引值 
//切换区域鼠标划入停止自动切换,划出继续自动 
iset.field.hover(function(){ 
stopFun(); 
}, function(){ 
scrollFun(); 
}); 
} 
}); 
})(jQuery);

其他
本插件可自由使用,包括任何形式的商业用途,但使用时请勿必注明版权归属.
欢迎提出疑问及建议, 并期待对本插件扩展.

测试文件打包下载 http://xiazai.3water.com/201008/yuanma/jQuery_iFadeSlide.rar

Javascript 相关文章推荐
jquery 弹出登录窗口实现代码
Dec 24 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
Oct 24 Javascript
js获取某元素的class里面的css属性值代码
Jan 16 Javascript
Jquery实现遮罩层的方法
Jun 08 Javascript
jQuery实现输入框下拉列表树插件特效代码分享
Aug 27 Javascript
Javascript中的数据类型之旅
Oct 18 Javascript
bootstrap实现图片自动轮播
Dec 21 Javascript
原生JS+Canvas实现五子棋游戏
May 28 Javascript
canvas基础绘制-绚丽倒计时的实例
Sep 17 Javascript
微信小程序制作扭蛋机代码实例
Sep 24 Javascript
vue 移动端记录页面浏览位置的方法
Mar 11 Javascript
原生JavaScript实现弹幕组件的示例代码
Oct 12 Javascript
js null,undefined,字符串小结
Aug 21 #Javascript
javascript中的float运算精度实例分析
Aug 21 #Javascript
Firebug入门指南(Firefox浏览器)
Aug 21 #Javascript
jquery插件之easing 动态菜单
Aug 21 #Javascript
url地址自动加#号问题说明
Aug 21 #Javascript
jquery中输入验证中一个不错的效果
Aug 21 #Javascript
单独使用CKFinder选择图片的方法
Aug 21 #Javascript
You might like
可定制的PHP缩略图生成程式(需要GD库支持)
2007/03/06 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
基于jquery 的一个progressbar widge
2010/10/29 Javascript
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
2012/12/17 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
2014/04/04 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
微信小程序 form组件详解
2016/10/25 Javascript
原生JS轮播图插件
2017/02/09 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
如何在vue 中引入使用jquery
2020/11/10 jQuery
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
Python实现二维有序数组查找的方法
2016/04/27 Python
详解 Python 读写XML文件的实例
2017/08/02 Python
python ansible服务及剧本编写
2017/12/29 Python
python3.6数独问题的解决
2019/01/21 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
opencv-python的RGB与BGR互转方式
2020/06/02 Python
基于django和dropzone.js实现上传文件
2020/11/24 Python
css3让div随鼠标移动而抖动起来
2014/02/10 HTML / CSS
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
Servlet方面面试题
2016/09/28 面试题
学生自我鉴定模板
2013/12/30 职场文书
户外婚礼策划方案
2014/02/08 职场文书
护理专业学生职业生涯规划范文
2014/03/11 职场文书
2014年廉洁自律承诺书
2014/05/26 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
2016党性教育学习心得体会
2016/01/21 职场文书