赞
踩
- //b为页面给slide()传参的对象{}
- return a.fn.slide.defaults = {
- type: "slide",//效果类型,可选"slide"||"menu",引入type:"menu"专门处理菜单/导航效果
- effect: "fade",//v1.0] fade:渐显; || top:上滚动;|| left:左滚动;|| topLoop:上循环滚动;|| leftLoop:左循环滚动;|| topMarquee:上无缝循环滚动;|| leftMarquee:左无缝循环滚动;fold:淡入淡出 slideDown:下拉效果
- autoPlay: !1,
- delayTime: 500,//切换时间长度,单位毫秒,影响的是下面tab-content内容显示处理的时间长段
- interTime: 2500,//自动切换时,允许时间间隔
- triggerTime: 150,//触发titCell时,过多久执行操作,单位毫秒
- defaultIndex: 0,//默认索引,在未设置active状态即未设置titOnClassName在titCell元素上时,默认添加该类
- titCell: ".hd li",//导航元素对象(鼠标的触发元素对象)
- mainCell: ".bd",//切换内容的包裹层,不能直接是内容元素,需要一级父元素;切换元素的包裹层对象
- targetCell: null,//当mainCell不能选择到内容时,可以使用targetCell代替
- trigger: "mouseover",
- scroll: 1,//每次滚动个数
- vis: 1,//visible缩写,mainCell的可视范围个数,当实际内容个数少于可视个数的时候,不执行SuperSlide效果。
- titOnClassName: "active",//当前titCell位置自动增加的class名称
- autoPage: !1,
- prevCell: ".prev",
- nextCell: ".next",
- pageStateCell: ".pageState",//分页状态对象,用于显示分页状态,例如:2/3
- opp: !1,//默认反方向运动,例如 effect:"leftMarquee" 然后设置 opp:true,则效果为右滚动。常用于leftMarquee/topMarquee
- pnLoop: !0,//前/后按钮是否继续循环,若为false则当翻动到最前/后页时,前/后按钮点击无效,同时增加prevStop/nextStop类名控制样色
- easing: "swing",//缓动效果;[v2.1]更改默认效果为“swing”,使效果更流畅
- startFun: null,//每次切换效果开始时执行函数,用于处理特殊情况或创建更多效果。用法 startFun:function(i,c){ }; 其中i为当前分页,c为总页数[v2.1]增加传递参数,startFun:function( i, c, slider, titCell, mainCell, targetCell, prevCell, nextCell ){},这样简写就方便了。例如 jQuery(".slideBox").slide({ startFun:function( i,c,s ){ s.show() } }); 这里的 s.show() 相当于 jQuery(".slideBox").show()
- endFun: null,//每次切换效果结束时执行函数,用法和startFun一致
- switchLoad: null,//切换tab时,实时加载真实图片路径,该值为存储真实图片地址的属性名称(自定义)
- playStateCell: ".playState",//播放/暂停状态按钮,点击后会增加/删除"pauseState"类名用于控制样色。可参考 [2.22-真·全屏焦点图]
- mouseOverStop: !0,//鼠标移到容器层(无缝滚动是mainCell)是否停止播放
- defaultPlay: !0,//默认是否执行效果(第一次运行是否执行效果)常用于导航/菜单
- returnDefault: !1//鼠标移出容器,是否返回默认状态,常用于导航/菜单
- },//this为调用slide的元素
- this.each(function() {
- console.log(a(b.mainCell,a(this)).children());
- var c = a.extend({},
- a.fn.slide.defaults, b),
- //合并数组对象,将用户传参与默认值合并,用户传参替换默认值
- d = a(this),//a()为jquery里面的默认选择函数,d=调用slide的元素
- e = c.effect,//'fade'
- f = a(c.prevCell, d),//从调用slide的元素中选择.prev类赋值给f
- g = a(c.nextCell, d),//从调用slide的元素中选择.next类赋值给g
- h = a(c.pageStateCell, d),//从调用slide的元素中选择.pageState类赋值给h
- i = a(c.playStateCell, d),//从d中选择.playState类赋值给i
- j = a(c.titCell, d),//从d中选择titCell赋值给j
- k=j.length,//计算tab头中元素个数赋值给k
- // k = j.size(),
- l = a(c.mainCell, d),//从d中选择tab-content元素赋值给l
- m=l.children().length,//从tab-content中选择直接子元素计算数量赋值给m
- // m = l.children().size(),
- n = c.switchLoad,//null
- o = a(c.targetCell, d),//从d中选择要实现切换内容的元素赋值给o,应该为元素集合
- p = parseInt(c.defaultIndex),//默认索引,切换的第一个元素索引赋值给p
- q = parseInt(c.delayTime),//取内容显示时间长段时间值赋值给q
- r = parseInt(c.interTime);
- parseInt(c.triggerTime);
- var Q, t = parseInt(c.scroll),//每次滚动个数赋值给t
- u = parseInt(c.vis),//可视个数
- v = "false" == c.autoPlay || 0 == c.autoPlay ? !1 : !0,//支持false,0两种赋值方式
- w = "false" == c.opp || 0 == c.opp ? !1 : !0,
- x = "false" == c.autoPage || 0 == c.autoPage ? !1 : !0,
- y = "false" == c.pnLoop || 0 == c.pnLoop ? !1 : !0,
- z = "false" == c.mouseOverStop || 0 == c.mouseOverStop ? !1 : !0,
- A = "false" == c.defaultPlay || 0 == c.defaultPlay ? !1 : !0,
- B = "false" == c.returnDefault || 0 == c.returnDefault ? !1 : !0,
- C = 0,
- D = 0,
- E = 0,
- F = 0,
- G = c.easing,//缓动效果赋值给G
- H = null,
- I = null,
- J = null,
- K = c.titOnClassName,//命中titCell时添加类名赋值给K
- L = j.index(d.find("." + K)),//j为鼠标触发事件的元素集合,d为包括nav和tab-content的父元素,在d中查找目前命中的元素titCell赋值给L
- M = p = -1 == L ? p: L,//如果nav有active的元素li时,则将索引赋值给p,M,没有时,则取传参或默认值
- N = p,
- O = p,
- P = m >= u ? (0 != m % t ? m % t: t): 0,//总数不能整除滚动个数时,就取余数;能整除就取滚动个数;如果总数大于=可视个数,就取计算得出的滚动个数,否则取0;
- R = "leftMarquee" == e || "topMarquee" == e ? !0 : !1,
- S = function() {
- a.isFunction(c.startFun) && c.startFun(p, k, d, a(c.titCell, d), l, o, f, g)
- },//如果用户自定义了startFun,就调用
- T = function() {
- a.isFunction(c.endFun) && c.endFun(p, k, d, a(c.titCell, d), l, o, f, g)
- },//如果用户自定义了endFun,就调用
- U = function() {
- j.removeClass(K),//清除所有
- A && j.eq(N).addClass(K)//给自定义的第一个添加(在defaultPlay=true)时执行
- };
- if ("menu" == c.type) return A && j.removeClass(K).eq(p).addClass(K),//defaultPlay=true时清除用户已经定义的激活类
- j.hover(function() {
- Q = a(this).find(c.targetCell);
- var b = j.index(a(this));//查找当前元素在titCell中的索引
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。