基于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
Mar 09 Javascript
在线游戏大家来找茬II
Sep 30 Javascript
JQuery datepicker 使用方法
May 20 Javascript
关于JavaScript中name的意义冲突示例介绍
May 29 Javascript
js中一维数组和二位数组中的几个问题示例说明
Jul 17 Javascript
ES6中Iterator与for..of..遍历用法分析
Mar 31 Javascript
jQuery中的deferred对象和extend方法详解
May 08 jQuery
BootStrap模态框和select2合用时input无法获取焦点的解决方法
Sep 01 Javascript
layui表格checkbox选择全选样式及功能的实例
Mar 07 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
Nov 19 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
Sep 25 Javascript
layui前端时间戳转化实例
Nov 15 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
mysql下创建字段并设置主键的php代码
2010/05/16 PHP
php 模拟POST|GET操作实现代码
2010/07/20 PHP
CI框架验证码CAPTCHA辅助函数用法实例
2014/11/05 PHP
Code:loadScript( )加载js的功能函数
2007/02/02 Javascript
JavaScript 事件查询综合
2009/07/13 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
jquery图片延迟加载 前端开发技能必备系列
2012/06/18 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
node.js实现快速截图
2016/08/27 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
2017/01/23 Javascript
Jquery-data的三种用法
2017/04/18 jQuery
浅谈Node.js之异步流控制
2017/10/25 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
详解Vue内部怎样处理props选项的多种写法
2018/11/06 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
python+selenium+autoit实现文件上传功能
2017/08/23 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
python队列原理及实现方法示例
2019/11/27 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
Keras设置以及获取权重的实现
2020/06/19 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
美术教师岗位职责
2014/03/18 职场文书
演讲稿的写法
2014/05/19 职场文书
商场周年庆活动方案
2014/08/19 职场文书
有限责任公司股东合作协议书范本
2014/10/30 职场文书
优秀团员自我评价
2015/03/10 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书
python获取淘宝服务器时间的代码示例
2021/04/22 Python
使用SQL实现车流量的计算的示例代码
2022/02/28 SQL Server
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL