基于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将数组插入到另一个数组中的代码
Jan 10 Javascript
jquery比较简洁的软键盘特效实现方法
Mar 19 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
Oct 25 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
Jan 08 Javascript
老生常谈js动态添加事件--- 事件委托
Jul 19 Javascript
js实现弹窗居中的简单实例
Oct 09 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
Dec 13 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
Aug 22 Javascript
基于jstree使用AJAX请求获取数据形成树
Aug 29 Javascript
浅谈angular2路由预加载策略
Oct 04 Javascript
浅谈webpack4.x 入门(一篇足矣)
Sep 05 Javascript
一篇文章弄清楚Ajax请求的五个步骤
Mar 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
第九节--绑定
2006/11/16 PHP
生成静态页面的PHP类
2006/11/25 PHP
PHP CKEditor 上传图片实现代码
2009/11/06 PHP
YII实现分页的方法
2014/07/09 PHP
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
JS实现淡入淡出图片效果的方法分析
2016/12/20 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
swiper实现导航滚动效果
2020/12/13 Javascript
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
[01:00:30]TFT vs VGJ.T Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
python封装对象实现时间效果
2020/04/23 Python
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
Python读取图片属性信息的实现方法
2016/09/11 Python
让python 3支持mysqldb的解决方法
2017/02/14 Python
Python实现基于二叉树存储结构的堆排序算法示例
2017/12/08 Python
Python实现一个带权无回置随机抽选函数的方法
2019/07/24 Python
初次部署django+gunicorn+nginx的方法步骤
2019/09/11 Python
Python 通过监听端口实现唯一脚本运行方式
2020/05/05 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
html5 canvas 简单画板实现代码
2012/01/05 HTML / CSS
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
护士毕业生自我鉴定
2014/02/08 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
学习实践科学发展观心得体会
2014/09/10 职场文书
酒店工程部经理岗位职责
2015/04/09 职场文书
Python爬虫之爬取二手房信息
2021/04/27 Python
新手必备Python开发环境搭建教程
2021/05/28 Python
Netty分布式客户端接入流程初始化源码分析
2022/03/25 Java/Android