基于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 贪吃蛇实现代码
Nov 22 Javascript
使用Java实现简单的server/client回显功能的方法介绍
May 03 Javascript
javaScript 页面自动加载事件详解
Feb 10 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
Mar 24 Javascript
JS实现具备延时功能的滑动门菜单效果
Sep 17 Javascript
jquery实现列表上下移动功能
Feb 25 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
Mar 02 Javascript
详解ES6之用let声明变量以及let loop机制
Jul 15 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
Mar 06 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
Jul 12 Javascript
vue实现div单选多选功能
Jul 16 Javascript
js 将多个对象合并成一个对象 assign方法的实现
Sep 24 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模板之Phpbean的目录结构
2008/01/10 PHP
很好用的PHP数据库类
2009/05/27 PHP
smarty中js的调用方法示例
2014/10/27 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
Laravel框架学习笔记之批量更新数据功能
2019/05/30 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
初学Javascript的一些总结
2008/11/03 Javascript
JavaScript动态调整TextArea高度的代码
2010/12/28 Javascript
js函数中onmousedown和onclick的区别和联系探讨
2013/05/19 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
Javascript基础教程之数组 array
2015/01/18 Javascript
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
AngularJS基础 ng-include 指令简单示例
2016/08/01 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
2016/11/10 Javascript
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
2017/08/18 jQuery
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
vue之延时刷新实例
2019/11/14 Javascript
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
Django自定义认证方式用法示例
2017/06/23 Python
Python netmiko模块的使用
2020/02/14 Python
如何教少儿学习Python编程
2020/07/10 Python
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
工艺员岗位职责
2014/02/11 职场文书
学校后勤岗位职责
2014/02/19 职场文书
作文评语集锦大全
2014/04/23 职场文书
服务承诺口号
2014/05/22 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
解决golang在import自己的包报错的问题
2021/04/29 Golang