基于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 相关文章推荐
用javascript实现的激活输入框后隐藏初始内容
Jun 29 Javascript
Javascript 获取滚动条位置等信息的函数
Sep 08 Javascript
jquery 操作DOM案例代码分享
Apr 05 Javascript
JQuery each打印JS对象的方法
Nov 13 Javascript
jQuery中click事件用法实例
Dec 26 Javascript
vue2.0多条件搜索组件使用详解
Mar 26 Javascript
react开发中如何使用require.ensure加载es6风格的组件
May 09 Javascript
JS文件中加载jquery.js的实例代码
May 05 jQuery
微信小程序日期选择器实例代码
Jul 18 Javascript
vue2 拖动排序 vuedraggable组件的实现
Aug 08 Javascript
小程序双头slider选择器的实现示例
Mar 31 Javascript
原生JS实现九宫格抽奖
Sep 13 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 escape URL编码
2008/12/10 PHP
php 传值赋值与引用赋值的区别
2010/12/29 PHP
PHP实现中文圆形印章特效
2015/06/19 PHP
thinkPHP3.1验证码的简单实现方法
2016/04/22 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
2019/07/20 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
imagettftext() 失效,不起作用
2021/03/09 PHP
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
对之前写的jquery分页做下升级
2014/06/19 Javascript
jQuery中siblings()方法用法实例
2015/01/08 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
原生js实现瀑布流布局
2017/03/08 Javascript
JS仿淘宝搜索框用户输入事件的实现
2017/06/19 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
CKeditor4 字体颜色功能配置方法教程
2019/06/26 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
pycharm 使用心得(三)Hello world!
2014/06/05 Python
Python重新引入被覆盖的自带function
2014/07/16 Python
Python中字典和JSON互转操作实例
2015/01/19 Python
Python使用sorted排序的方法小结
2017/07/28 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
win10 64bit下python NLTK安装教程
2018/09/19 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
银行委托书范本
2014/04/04 职场文书
3分钟演讲稿
2014/04/30 职场文书
献爱心标语
2014/06/21 职场文书
年会邀请函范文
2015/01/30 职场文书