基于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表单提交的代码
Sep 13 Javascript
调试Node.JS的辅助工具(NodeWatcher)
Jan 04 Javascript
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
Aug 05 Javascript
JavaScript使用Replace进行字符串替换的方法
Apr 14 Javascript
学习JavaScript设计模式之代理模式
Jan 12 Javascript
开启BootStrap学习之旅
May 04 Javascript
Sea.JS知识总结
May 05 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
Aug 24 Javascript
jQuery学习笔记之入门
Dec 14 Javascript
webpack分离css单独打包的方法
Jun 12 Javascript
35个最好用的Vue开源库(史上最全)
Jan 03 Javascript
jquery实现有过渡效果的tab切换
Jul 17 jQuery
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读取ACCESS数据到MYSQL的代码
2011/05/11 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
php获取给定日期相差天数的方法分析
2017/02/20 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
过虑特殊字符输入的js代码
2010/08/05 Javascript
js修改input的type属性问题探讨
2013/10/12 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
2015/08/07 Javascript
jQuery实现宽屏图片轮播实例教程
2015/11/24 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
AngularJS中的promise用法分析
2017/05/19 Javascript
AngularJS 最常用的八种功能(基础知识)
2017/06/26 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
vue-cli项目配置多环境的详细操作过程
2018/10/30 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
[01:00:59]VP VS VG Supermajor小组赛胜者组第二轮 BO3第二场 6.2
2018/06/03 DOTA
Python读取文件内容的三种常用方式及效率比较
2017/10/07 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
质量承诺书怎么写
2014/05/24 职场文书
工作收入住址证明
2014/10/28 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书
导游词之阆中古城
2019/12/23 职场文书
MySql数据库触发器使用教程
2022/06/01 MySQL
详解ZABBIX监控ESXI主机的问题
2022/06/21 Servers