基于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 cdn使用介绍
May 08 Javascript
javascritp添加url参数将参数加入到url中
Sep 25 Javascript
究竟什么是Node.js?Node.js有什么好处?
May 29 Javascript
js实现Select头像选择实时预览代码
Aug 17 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
May 12 Javascript
JavaScript数据类型转换的注意事项
Jul 31 Javascript
jQuery插件ajaxFileUpload使用详解
Jan 10 Javascript
给localStorage设置一个过期时间的方法分享
Nov 06 Javascript
浅谈express.js框架中间件(middleware)
Apr 07 Javascript
JavaScript中的this原理及6种常见使用场景详解
Feb 14 Javascript
javascript实现固定侧边栏
Feb 09 Javascript
vue3不同环境下实现配置代理
May 25 Vue.js
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利用cookie实现访问次数统计代码
2011/05/19 PHP
PHP检测用户是否关闭浏览器的方法
2016/02/14 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
屏蔽F1~F12的快捷键的js函数
2010/05/06 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
2013/06/24 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
Javascript 动态改变imput type属性
2016/11/01 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
详解Vue 方法与事件处理器
2017/06/20 Javascript
AngularJS service之select下拉菜单效果
2017/07/28 Javascript
基于vue实现分页效果
2017/11/06 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
Python内置的字符串处理函数详细整理(覆盖日常所用)
2014/08/19 Python
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
Python类的用法实例浅析
2015/05/27 Python
Sanic框架配置操作分析
2018/07/17 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
python如何基于redis实现ip代理池
2020/01/17 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
2020/03/12 Python
django rest framework 过滤时间操作
2020/07/12 Python
vscode配置anaconda3的方法步骤
2020/08/08 Python
python em算法的实现
2020/10/03 Python
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
软件工程师岗位职责
2013/11/16 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书