基于jQuery的可用于选项卡及幻灯的切换插件
基于jQuery的可用于选项卡及幻灯的切换插件
发布时间:2016-12-30 来源:查字典编辑
摘要:思路就不说了,记得以前写过一个自动切换的幻灯插件:,思路有部分是类似的。当然,本文中插件源码中也有注释~插件核心代码:点此查看演示复制代码代...

思路就不说了,记得以前写过一个自动切换的幻灯插件:,思路有部分是类似的。当然,本文中插件源码中也有注释~ 插件核心代码:点此查看演示

复制代码 代码如下:

$.fn.WIT_SetTab=function(iSet){

/*

* @Mr.Think

* Nav: 导航钩子;

* Field:切换区域

* K:初始化索引;

* CurCls:高亮样式;

* Auto:是否自动切换;

* AutoTime:自动切换时间;

* OutTime:淡入时间;

* InTime:淡出时间;

* CrossTime:鼠标无意识划过时间

* Ajax:是否开启ajax

* AjaxFun:开启ajax后执行的函数

*/

iSet=$.extend({Nav:null,Field:null,K:0,CurCls:'cur',Auto:false,AutoTime:4000,OutTime:100,InTime:150,CrossTime:60},iSet||{});

var acrossFun=null,hasCls=false,autoSlide=null;

//切换函数

function changeFun(n){

iSet.Field.filter(':visible').fadeOut(iSet.OutTime, function(){

iSet.Field.eq(n).fadeIn(iSet.InTime).siblings().hide();

});

iSet.Nav.eq(n).addClass(iSet.CurCls).siblings().removeClass(iSet.CurCls);

}

//初始高亮第一个

changeFun(iSet.K);

//鼠标事件

iSet.Nav.hover(function(){

iSet.K=iSet.Nav.index(this);

if(iSet.Auto){

clearInterval(autoSlide);

}

hasCls = $(this).hasClass(iSet.CurCls);

//避免无意识划过时触发

acrossFun=setTimeout(function(){

//避免当前高亮时划入再次触发

if(!hasCls){

changeFun(iSet.K);

}

},iSet.CrossTime);

},function(){

clearTimeout(acrossFun);

//ajax调用

if(iSet.Ajax){

iSet.AjaxFun();

}

if(iSet.Auto){

//自动切换

autoSlide = setInterval(function(){

iSet.K++;

changeFun(iSet.K);

if (iSet.K == iSet.Field.size()) {

changeFun(0);

iSet.K=0;

}

}, iSet.AutoTime)

}

}).eq(0).trigger('mouseleave');

}

打包下载地址

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类