基于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 相关文章推荐
input 高级限制级用法
Mar 26 Javascript
在JQuery dialog里的服务器控件 事件失效问题
Dec 08 Javascript
js使用html()或text()方法获取设置p标签的显示的值
Aug 01 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
Feb 02 Javascript
JS基于Mootools实现的个性菜单效果代码
Oct 21 Javascript
js纯数字逐一停止显示效果的实现代码
Mar 16 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
May 05 Javascript
为什么JavaScript没有块级作用域
May 22 Javascript
微信小程序 swiper组件轮播图详解及实例
Nov 16 Javascript
微信小程序 实现点击添加移除class
Jun 12 Javascript
bootstrap模态框关闭后清除模态框的数据方法
Aug 10 Javascript
js节流防抖应用场景,以及在vue中节流防抖的具体实现操作
Sep 21 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
以文本方式上传二进制文件的PHP程序
2006/10/09 PHP
解析curl提交GET,POST,Cookie的简单方法
2013/06/29 PHP
php pki加密技术(openssl)详解
2013/07/01 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
PHP 信号管理知识整理汇总
2017/02/19 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
2013/03/18 Javascript
基于jquery的simpleValidate简易验证插件
2014/01/31 Javascript
AngularJS表格详解及示例代码
2016/08/17 Javascript
js中new一个对象的过程
2017/02/20 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
详解在React里使用&quot;Vuex&quot;
2018/04/02 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
详解element-ui中el-select的默认选择项问题
2019/08/02 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
2020/07/28 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
Python中用Spark模块的使用教程
2015/04/13 Python
Python的iOS自动化打包实例代码
2018/11/22 Python
对python条件表达式的四种实现方法小结
2019/01/30 Python
详解python中递归函数
2019/04/16 Python
pytorch中的embedding词向量的使用方法
2019/08/18 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
大学生创业计划书的用途
2014/01/08 职场文书
带薪年假请假条
2014/02/04 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
大学生英文求职信范文
2015/03/19 职场文书
停发工资证明范本
2015/06/12 职场文书
css3实现的加载动画效果
2021/04/07 HTML / CSS
完美解决golang go get私有仓库的问题
2021/05/05 Golang
Netty结合Protobuf进行编解码的方法
2021/06/26 Java/Android
angular4实现带搜索的下拉框
2022/03/25 Javascript