基于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 相关文章推荐
js 实现无缝滚动 兼容IE和FF
Jul 15 Javascript
Javascript无阻塞加载具体方式
Jun 28 Javascript
jQuery动态创建html元素的常用方法汇总
Sep 05 Javascript
原生js实现图片轮播特效
Dec 18 Javascript
self.attachevent is not a function的解决方法
Apr 04 Javascript
javascript 的变量、作用域和内存问题
Apr 19 Javascript
使用原生js+canvas实现模拟心电图的实例
Sep 20 Javascript
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
Angular4 Select选择改变事件的方法
Oct 09 Javascript
layui上传图片到服务器的非项目目录下的方法
Sep 26 Javascript
原生JS与CSS实现软件卸载对话框功能
Dec 05 Javascript
Vue实现剪切板图片压缩功能
Feb 04 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结合md5实现的加密解密方法
2016/01/25 PHP
PHP读取mssql json数据中文乱码的解决办法
2016/04/11 PHP
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
详解JavaScript中的构造器Constructor模式
2016/01/14 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
2016/06/21 Javascript
JS打印组合功能
2016/08/04 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
python决策树之C4.5算法详解
2017/12/20 Python
Python实现读取机器硬件信息的方法示例
2018/06/09 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
2019/08/17 Python
python中xlrd模块的使用详解
2021/02/01 Python
Python实现疫情地图可视化
2021/02/05 Python
css3media响应式布局实例
2016/07/08 HTML / CSS
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
2016/12/30 HTML / CSS
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
男方父母证婚词
2014/01/12 职场文书
秋季校运动会广播稿
2014/02/23 职场文书
小学安全教育月活动总结
2014/07/07 职场文书
订货会主持词
2015/07/01 职场文书
技能培训通讯稿
2015/07/18 职场文书
诚实守信主题班会
2015/08/13 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript