基于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 相关文章推荐
Javascript - HTML的request类
Jan 09 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
Sep 29 Javascript
js中事件的处理与浏览器对象示例介绍
Nov 29 Javascript
深入理解setTimeout函数和setInterval函数
May 20 Javascript
D3.js实现柱状图的方法详解
Sep 21 Javascript
使用jquery.qrcode.js生成二维码插件
Oct 17 Javascript
jQuery插件WebUploader实现文件上传
Nov 07 Javascript
详解AngularJs ui-router 路由的简单介绍
Apr 26 Javascript
Angularjs的键盘事件的绑定
Jul 27 Javascript
Javascript的console['']常用输入方法汇总
Apr 26 Javascript
CKeditor4 字体颜色功能配置方法教程
Jun 26 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
Dec 17 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 addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
PHP中COOKIES使用示例
2015/07/26 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
PHP MYSQL简易交互式站点开发
2016/12/27 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
BOOM vs RR BO3 第二场2.13
2021/03/10 DOTA
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
关于 byval 与 byref 的区别分析总结
2007/10/08 Javascript
JavaScript使用addEventListener添加事件监听用法实例
2015/06/01 Javascript
JS延时器提示框的应用实例代码解析
2016/04/27 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
2016/10/03 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
Vue在页面数据渲染完成之后的调用方法
2018/09/11 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
详解React的回调渲染模式
2020/09/10 Javascript
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
Python获取任意xml节点值的方法
2015/05/05 Python
Python实现的简单模板引擎功能示例
2017/09/02 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
Python generator生成器和yield表达式详解
2019/08/08 Python
python 爬取B站原视频的实例代码
2020/09/09 Python
python判断元素是否存在的实例方法
2020/09/24 Python
CSS3实现伪类hover离开时平滑过渡效果示例
2017/08/10 HTML / CSS
html5简介及新增功能介绍
2020/05/18 HTML / CSS
JOSEPH官网:英国奢侈时尚品牌
2018/01/31 全球购物
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
公司同意接收函
2014/01/13 职场文书
电子商务系毕业生自荐信
2014/05/29 职场文书
小学感恩教育活动总结
2014/07/07 职场文书
酒店管理失职检讨书
2014/09/16 职场文书
JavaScript继承的三种方法实例
2021/05/12 Javascript
pandas提升计算效率的一些方法汇总
2021/05/30 Python