基于jQuery的淡入淡出可自动切换的幻灯插件打包下载


Posted in Javascript onSeptember 15, 2010

思维是个很诡异的东西,一旦陷入某个死角,很难逃出. 惟有冷却一些时间,完全抛开旧的思维,才能找到新的出路.
其实就是一个幻灯效果,考虑到使用方便,就封装成一个插件了.

插件特点

1. 参数高度自定义;
2. 可重复调用且与不影响;
3. 插件文件小,压缩后仅1.04k,开发版3.29k.

演示及下载

点此查看DEMO
点此下载插件

使用方法
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);
Javascript 相关文章推荐
js判断生效时间不得大于失效时间的思路及代码
Apr 23 Javascript
jQuery插件zepto.js简单实现tab切换
Jun 16 Javascript
Bootstrap实现带动画过渡的弹出框
Aug 09 Javascript
AngularJS实现动态编译添加到dom中的方法
Nov 04 Javascript
概述jQuery中的ajax方法
Dec 16 Javascript
微信小程序实现图片轮播及文件上传
Apr 07 Javascript
Vue单文件组件的如何使用方式介绍
Jul 28 Javascript
vue数组对象排序的实现代码
Jun 20 Javascript
js实现多张图片每隔一秒切换一张图片
Jul 29 Javascript
js动态获取时间的方法分析
Aug 02 Javascript
JS中的算法与数据结构之列表(List)实例详解
Aug 16 Javascript
JavaScript函数Call、Apply原理实例解析
Feb 17 Javascript
基于JQuery的简单实现折叠菜单代码
Sep 15 #Javascript
jQuery获取css z-index在各种浏览器中的返回值
Sep 15 #Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
Sep 14 #Javascript
手把手教你自己写一个js表单验证框架的方法
Sep 14 #Javascript
(jQuery,mootools,dojo)使用适合自己的编程别名命名
Sep 14 #Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
Sep 14 #Javascript
基于jquery的划词搜索实现(备忘)
Sep 14 #Javascript
You might like
apache+php完美解决301重定向的两种方法
2011/06/08 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
两款万能的php分页类
2015/11/12 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
PHP检查URL包含特定字符串实例方法
2019/02/11 PHP
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
Javascript的各种节点操作实例演示代码
2012/06/27 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
Javascript中实现String.startsWith和endsWith方法
2015/06/10 Javascript
JavaScript数组各种常见用法实例分析
2015/08/04 Javascript
Javascript中的arguments对象
2016/06/20 Javascript
理解javascript中的闭包
2017/01/11 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
2019/04/15 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
微信小程序实现图片翻转效果的实例代码
2019/09/20 Javascript
[00:43]FTP典藏礼包 DOTA2三大英雄霸气新套装
2014/03/21 DOTA
Python中的ctime()方法使用教程
2015/05/22 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
Python实现程序判断季节的代码示例
2019/01/28 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
2019/05/21 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
pytorch 计算Parameter和FLOP的操作
2021/03/04 Python
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
Europcar澳大利亚官网:全球汽车租赁领域的领导者
2019/03/24 全球购物
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
2016新年慰问信范文
2015/03/25 职场文书
大学开学感言
2015/08/01 职场文书