基于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 相关文章推荐
基于jQuery的实现简单的分页控件
Oct 10 Javascript
jQuery实战之品牌展示列表效果
Apr 10 Javascript
JqGrid web打印实现代码
May 31 Javascript
Jquery动态更改一张位图的src与Attr的使用
Jul 31 Javascript
ajax请求乱码的解决方法(中文乱码)
Apr 10 Javascript
javascript版2048小游戏
Mar 18 Javascript
原生javascript实现图片无缝滚动效果
Feb 12 Javascript
Bootstrap3 Grid system原理及应用详解
Sep 30 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
Apr 13 Javascript
解决vue中对象属性改变视图不更新的问题
Feb 23 Javascript
利用Console来Debug的10个高级技巧汇总
Mar 26 Javascript
微信小程序实现单选功能
Oct 30 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
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
PHP实现时间轴函数代码
2011/10/08 PHP
利用PHP实现短域名互转
2013/07/05 PHP
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
推荐几个开源的微信开发项目
2014/12/28 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
关于php中的json_encode()和json_decode()函数的一些说明
2016/11/20 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
JS不间断向上滚动效果代码
2013/12/25 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
angularJS 如何读写缓冲的方法(推荐)
2016/08/06 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
jQuery实现提交表单时不提交隐藏div中input的方法
2019/10/08 jQuery
[01:24]2014DOTA2 TI第二日 YYF表示这届谁赢都有可能
2014/07/11 DOTA
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
python函数中将变量名转换成字符串实例
2020/05/11 Python
python利用platform模块获取系统信息
2020/10/09 Python
Python 数据分析之逐块读取文本的实现
2020/12/14 Python
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
研究生考核个人自我鉴定
2014/03/27 职场文书
支部书记四风对照材料
2014/08/28 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
地震慰问信
2015/02/14 职场文书
护士自我推荐信范文
2015/03/24 职场文书
医学会议开幕词
2016/03/03 职场文书
分析设计模式之模板方法Java实现
2021/06/23 Java/Android
MySql中的json_extract函数处理json字段详情
2022/06/05 MySQL