基于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 相关文章推荐
PJBlog插件 防刷新的在线播放器
Oct 25 Javascript
关于文本限制字数的js代码
Apr 02 Javascript
javascipt匹配单行和多行注释的正则表达式
Nov 20 Javascript
js实现简单div拖拽功能实例
May 12 Javascript
跟我学习javascript的全局变量
Nov 16 Javascript
JavaScript匿名函数之模仿块级作用域
Dec 12 Javascript
总结Javascript中数组各种去重的方法
Oct 04 Javascript
基于Three.js插件制作360度全景图
Nov 29 Javascript
AngularJS实现表单验证功能
Jan 09 Javascript
关于laydate.js加载laydate.css路径错误问题解决
Dec 27 Javascript
解决vue中的无限循环问题
Jul 27 Javascript
vue使用video插件vue-video-player的示例
Oct 03 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/02 无线电
第一节--面向对象编程
2006/11/16 PHP
PHP Ajax实现页面无刷新发表评论
2007/01/02 PHP
优化PHP代码的53条建议
2008/03/27 PHP
PHP学习笔记之二 php入门知识
2011/01/12 PHP
PHP微信支付实例解析
2016/07/22 PHP
基于Jquery的开发个代阴影的对话框效果代码
2011/07/28 Javascript
jQuery中ajax的get()方法用法实例
2014/12/26 Javascript
jQuery中的pushStack实现原理和应用实例
2015/02/03 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
2015/04/10 Javascript
Javascript中For In语句用法实例
2015/05/14 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
jQuery插件Validate实现自定义表单验证
2016/01/18 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
gulp教程_从入门到项目中快速上手使用方法
2017/09/14 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
mock.js模拟前后台交互
2019/07/25 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
python采用getopt解析命令行输入参数实例
2014/09/30 Python
Python的净值数据接口调用示例分享
2016/03/15 Python
python类:class创建、数据方法属性及访问控制详解
2016/07/25 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
Django框架自定义session处理操作示例
2019/05/27 Python
python中count函数简单的实例讲解
2020/02/06 Python
教你使用Canvas处理图片的方法
2017/11/28 HTML / CSS
医学专业职业生涯规划范文
2014/02/05 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
同步小康驻村工作简报
2015/07/20 职场文书
公司管理制度范本
2015/08/03 职场文书
《打电话》教学反思
2016/02/22 职场文书
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python