/*! * SuperSlide v2.1.2 * 轻松解决网站大部分特效展示问题 * 详尽信息请看官网:http://www.SuperSlide2.com/ * * Copyright 2011-2015, 大话主席 * * 请尊重原创,保留头部版权 * 在保留版权的前提下可应用于个人或商业用途 * v2.1.1:修复当调用多个SuperSlide,并设置returnDefault:true 时返回defaultIndex索引错误 * v2.1.2:增加参数设置vis:"auto",解决左滚动自适应窗口宽度问题。适应情况:vis:"auto",scroll:1, effect:"left或leftLoop"(注:此为临时解决方案,日后版本可能变动) * v2.1.2:修复 mouseOverStop 和 autoPlay均为false下,点击切换按钮后会自动播放bug */ (function(a) { a.fn.slide = function(b) { a.fn.slide.defaults = { type: "slide", effect: "fade", autoPlay: false, delayTime: 500, interTime: 2500, triggerTime: 150, defaultIndex: 0, titCell: ".hd li", mainCell: ".bd", targetCell: null, trigger: "mouseover", scroll: 1, vis: 1, titOnClassName: "on", autoPage: false, prevCell: ".prev", nextCell: ".next", pageStateCell: ".pageState", opp: false, pnLoop: true, easing: "swing", startFun: null, endFun: null, switchLoad: null, playStateCell: ".playState", mouseOverStop: true, defaultPlay: true, returnDefault: false }; return this.each(function() { var I = a.extend({}, a.fn.slide.defaults, b); var g = a(this); var af = I.effect; var o = a(I.prevCell, g); var H = a(I.nextCell, g); var G = a(I.pageStateCell, g); var N = a(I.playStateCell, g); var B = a(I.titCell, g); var m = B.size(); var aa = a(I.mainCell, g); var e = aa.children().size(); var h = I.switchLoad; var ai = a(I.targetCell, g); var K = parseInt(I.defaultIndex); var z = parseInt(I.delayTime); var p = parseInt(I.interTime); var aq = parseInt(I.triggerTime); var ac = parseInt(I.scroll); var ab = (I.autoPlay == "false" || I.autoPlay == false) ? false : true; var C = (I.opp == "false" || I.opp == false) ? false : true; var s = (I.autoPage == "false" || I.autoPage == false) ? false : true; var P = (I.pnLoop == "false" || I.pnLoop == false) ? false : true; var ae = (I.mouseOverStop == "false" || I.mouseOverStop == false) ? false : true; var x = (I.defaultPlay == "false" || I.defaultPlay == false) ? false : true; var Q = (I.returnDefault == "false" || I.returnDefault == false) ? false : true; var ag = isNaN(I.vis) ? 1 : parseInt(I.vis); var an = !-[1, ] && !window.XMLHttpRequest; var J = 0; var F = 0; var q = 0; var E = 0; var R = I.easing; var ad = null; var M = null; var W = null; var ap = I.titOnClassName; var D = B.index(g.find("." + ap)); var ao = K = D == -1 ? K : D; var f = K; var am = K; var r = e >= ag ? (e % ac != 0 ? e % ac : ac) : 0; var V; var U = af == "leftMarquee" || af == "topMarquee" ? true : false; var al = function() { if (a.isFunction(I.startFun)) { I.startFun(K, m, g, a(I.titCell, g), aa, ai, o, H) } }; var j = function() { if (a.isFunction(I.endFun)) { I.endFun(K, m, g, a(I.titCell, g), aa, ai, o, H) } }; var c = function() { B.removeClass(ap); if (x) { B.eq(f).addClass(ap) } }; if (I.type == "menu") { if (x) { B.removeClass(ap).eq(K).addClass(ap) } B.hover(function() { V = a(this).find(I.targetCell); var i = B.index(a(this)); M = setTimeout(function() { K = i; B.removeClass(ap).eq(K).addClass(ap); al(); switch (af) { case "fade": V.stop(true, true).animate({ opacity: "show" }, z, R, j); break; case "slideDown": V.stop(true, true).animate({ height: "show" }, z, R, j); break } }, I.triggerTime) }, function() { clearTimeout(M); switch (af) { case "fade": V.animate({ opacity: "hide" }, z, R); break; case "slideDown": V.animate({ height: "hide" }, z, R); break } }); if (Q) { g.hover(function() { clearTimeout(W) }, function() { W = setTimeout(c, z) }) } return } if (m == 0) { m = e } if (U) { m = 2 } if (s) { if (e >= ag) { if (af == "leftLoop" || af == "topLoop") { m = e % ac != 0 ? (e / ac ^ 0) + 1 : e / ac } else { var S = e - ag; m = 1 + parseInt(S % ac != 0 ? (S / ac + 1) : (S / ac)); if (m <= 0) { m = 1 } } } else { m = 1 } B.html(""); var L = ""; if (I.autoPage == true || I.autoPage == "true") { for (var ak = 0; ak < m; ak++) { L += "
  • " + (ak + 1) + "
  • " } } else { for (var ak = 0; ak < m; ak++) { L += I.autoPage.replace("$", (ak + 1)) } } B.html(L); var B = B.children() } if (e >= ag) { aa.children().each(function() { if (a(this).width() > q) { q = a(this).width(); F = a(this).outerWidth(true) } if (a(this).height() > E) { E = a(this).height(); J = a(this).outerHeight(true) } }); var y = aa.children(); var w = function() { for (var ar = 0; ar < ag; ar++) { y.eq(ar).clone().addClass("clone").appendTo(aa) } for (var ar = 0; ar < r; ar++) { y.eq(e - ar - 1).clone().addClass("clone").prependTo(aa) } }; switch (af) { case "fold": aa.css({ "position": "relative", "width": F, "height": J }).children().css({ "position": "absolute", "width": q, "left": 0, "top": 0, "display": "none" }); break; case "top": aa.wrap('
    ').css({ "top": -(K * ac) * J, "position": "relative", "padding": "0", "margin": "0" }).children().css({ "height": E }); break; case "left": aa.wrap('
    ').css({ "width": e * F, "left": -(K * ac) * F, "position": "relative", "overflow": "hidden", "padding": "0", "margin": "0" }).children().css({ "float": "left", "width": q }); break; case "leftLoop": case "leftMarquee": w(); aa.wrap('
    ').css({ "width": (e + ag + r) * F, "position": "relative", "overflow": "hidden", "padding": "0", "margin": "0", "left": -(r + K * ac) * F }).children().css({ "float": "left", "width": q }); break; case "topLoop": case "topMarquee": w(); aa.wrap('
    ').css({ "height": (e + ag + r) * J, "position": "relative", "padding": "0", "margin": "0", "top": -(r + K * ac) * J }).children().css({ "height": E }); break } } var Z = function(ar) { var i = ar * ac; if (ar == m) { i = e } else { if (ar == -1 && e % ac != 0) { i = -e % ac } } return i }; var d = function(aw) { var av = function(ay) { for (var ax = ay; ax < (ag + ay); ax++) { aw.eq(ax).find("img[" + h + "]").each(function() { var aB = a(this); aB.attr("src", aB.attr(h)).removeAttr(h); if (aa.find(".clone")[0]) { var aA = aa.children(); for (var az = 0; az < aA.size(); az++) { aA.eq(az).find("img[" + h + "]").each(function() { if (a(this).attr(h) == aB.attr("src")) { a(this).attr("src", a(this).attr(h)).removeAttr(h) } }) } } }) } }; switch (af) { case "fade": case "fold": case "top": case "left": case "slideDown": av(K * ac); break; case "leftLoop": case "topLoop": av(r + Z(am)); break; case "leftMarquee": case "topMarquee": var at = af == "leftMarquee" ? aa.css("left").replace("px", "") : aa.css("top").replace("px", ""); var ar = af == "leftMarquee" ? F : J; var i = r; if (at % ar != 0) { var au = Math.abs(at / ar ^ 0); if (K == 1) { i = r + au } else { i = r + au - 1 } } av(i); break } }; var O = function(au) { if (x && ao == K && !au && !U) { return } if (U) { if (K >= 1) { K = 1 } else { if (K <= 0) { K = 0 } } } else { am = K; if (K >= m) { K = 0 } else { if (K < 0) { K = m - 1 } } } al(); if (h != null) { d(aa.children()) } if (ai[0]) { V = ai.eq(K); if (h != null) { d(ai) } if (af == "slideDown") { ai.not(V).stop(true, true).slideUp(z); V.slideDown(z, R, function() { if (!aa[0]) { j() } }) } else { ai.not(V).stop(true, true).hide(); V.animate({ opacity: "show" }, z, function() { if (!aa[0]) { j() } }) } } if (e >= ag) { switch (af) { case "fade": aa.children().stop(true, true).eq(K).animate({ opacity: "show" }, z, R, function() { j() }).siblings().hide(); break; case "fold": aa.children().stop(true, true).eq(K).animate({ opacity: "show" }, z, R, function() { j() }).siblings().animate({ opacity: "hide" }, z, R); break; case "top": aa.stop(true, false).animate({ "top": -K * ac * J }, z, R, function() { j() }); break; case "left": aa.stop(true, false).animate({ "left": -K * ac * F }, z, R, function() { j() }); break; case "leftLoop": var ar = am; aa.stop(true, true).animate({ "left": -(Z(am) + r) * F }, z, R, function() { if (ar <= -1) { aa.css("left", -(r + (m - 1) * ac) * F) } else { if (ar >= m) { aa.css("left", -r * F) } } j() }); break; case "topLoop": var ar = am; aa.stop(true, true).animate({ "top": -(Z(am) + r) * J }, z, R, function() { if (ar <= -1) { aa.css("top", -(r + (m - 1) * ac) * J) } else { if (ar >= m) { aa.css("top", -r * J) } } j() }); break; case "leftMarquee": var at = aa.css("left").replace("px", ""); if (K == 0) { aa.animate({ "left": ++at }, 0, function() { if (aa.css("left").replace("px", "") >= 0) { aa.css("left", -e * F) } }) } else { aa.animate({ "left": --at }, 0, function() { if (aa.css("left").replace("px", "") <= -(e + r) * F) { aa.css("left", -r * F) } }) } break; case "topMarquee": var i = aa.css("top").replace("px", ""); if (K == 0) { aa.animate({ "top": ++i }, 0, function() { if (aa.css("top").replace("px", "") >= 0) { aa.css("top", -e * J) } }) } else { aa.animate({ "top": --i }, 0, function() { if (aa.css("top").replace("px", "") <= -(e + r) * J) { aa.css("top", -r * J) } }) } break } } B.removeClass(ap).eq(K).addClass(ap); ao = K; if (!P) { H.removeClass("nextStop"); o.removeClass("prevStop"); if (K == 0) { o.addClass("prevStop") } if (K == m - 1) { H.addClass("nextStop") } } G.html("" + "0" + (K + 1) + "/" + "" + "0" + m + "") }; if (x) { O(true) } if (Q) { g.hover(function() { clearTimeout(W) }, function() { W = setTimeout(function() { K = f; if (x) { O() } else { if (af == "slideDown") { V.slideUp(z, c) } else { V.animate({ opacity: "hide" }, z, c) } } ao = K }, 300) }) } var T = function(i) { ad = setInterval(function() { C ? K-- : K++; O() }, !!i ? i : p) }; var u = function(i) { ad = setInterval(O, !!i ? i : p) }; var A = function() { if (!ae && ab && !N.hasClass("pauseState")) { clearInterval(ad); T() } }; var Y = function() { if (P || K != m - 1) { K++; O(); if (!U) { A() } } }; var v = function() { if (P || K != 0) { K--; O(); if (!U) { A() } } }; var t = function() { clearInterval(ad); U ? u() : T(); N.removeClass("pauseState") }; var aj = function() { clearInterval(ad); N.addClass("pauseState") }; if (ab) { if (U) { C ? K-- : K++; u(); if (ae) { aa.hover(aj, t) } } else { T(); if (ae) { g.hover(aj, t) } } } else { if (U) { C ? K-- : K++ } N.addClass("pauseState") } N.click(function() { N.hasClass("pauseState") ? t() : aj() }); if (I.trigger == "mouseover") { B.hover(function() { var i = B.index(this); M = setTimeout(function() { K = i; O(); A() }, I.triggerTime) }, function() { clearTimeout(M) }) } else { B.click(function() { K = B.index(this); O(); A() }) } if (U) { H.mousedown(Y); o.mousedown(v); if (P) { var n; var k = function() { n = setTimeout(function() { clearInterval(ad); u(p / 10 ^ 0) }, 150) }; var ah = function() { clearTimeout(n); clearInterval(ad); u() }; H.mousedown(k); H.mouseup(ah); o.mousedown(k); o.mouseup(ah) } if (I.trigger == "mouseover") { H.hover(Y, function() {}); o.hover(v, function() {}) } } else { H.click(Y); o.click(v) } if (I.vis == "auto" && ac == 1 && (af == "left" || af == "leftLoop")) { var X; var l = function() { if (an) { aa.width("auto"); aa.children().width("auto") } aa.parent().width("auto"); F = aa.parent().width(); if (an) { aa.parent().width(F) } aa.children().width(F); if (af == "left") { aa.width(F * e); aa.stop(true, false).animate({ "left": -K * F }, 0) } else { aa.width(F * (e + 2)); aa.stop(true, false).animate({ "left": -(K + 1) * F }, 0) } if (!an && (F != aa.parent().width())) { l() } }; a(window).resize(function() { clearTimeout(X); X = setTimeout(l, 100) }); l() } }) } } )(jQuery); jQuery.easing["jswing"] = jQuery.easing["swing"]; jQuery.extend(jQuery.easing, { def: "easeOutQuad", swing: function(e, f, a, h, g) { return jQuery.easing[jQuery.easing.def](e, f, a, h, g) }, easeInQuad: function(e, f, a, h, g) { return h * (f /= g) * f + a }, easeOutQuad: function(e, f, a, h, g) { return -h * (f /= g) * (f - 2) + a }, easeInOutQuad: function(e, f, a, h, g) { if ((f /= g / 2) < 1) { return h / 2 * f * f + a } return -h / 2 * ((--f) * (f - 2) - 1) + a }, easeInCubic: function(e, f, a, h, g) { return h * (f /= g) * f * f + a }, easeOutCubic: function(e, f, a, h, g) { return h * ((f = f / g - 1) * f * f + 1) + a }, easeInOutCubic: function(e, f, a, h, g) { if ((f /= g / 2) < 1) { return h / 2 * f * f * f + a } return h / 2 * ((f -= 2) * f * f + 2) + a }, easeInQuart: function(e, f, a, h, g) { return h * (f /= g) * f * f * f + a }, easeOutQuart: function(e, f, a, h, g) { return -h * ((f = f / g - 1) * f * f * f - 1) + a }, easeInOutQuart: function(e, f, a, h, g) { if ((f /= g / 2) < 1) { return h / 2 * f * f * f * f + a } return -h / 2 * ((f -= 2) * f * f * f - 2) + a }, easeInQuint: function(e, f, a, h, g) { return h * (f /= g) * f * f * f * f + a }, easeOutQuint: function(e, f, a, h, g) { return h * ((f = f / g - 1) * f * f * f * f + 1) + a }, easeInOutQuint: function(e, f, a, h, g) { if ((f /= g / 2) < 1) { return h / 2 * f * f * f * f * f + a } return h / 2 * ((f -= 2) * f * f * f * f + 2) + a }, easeInSine: function(e, f, a, h, g) { return -h * Math.cos(f / g * (Math.PI / 2)) + h + a }, easeOutSine: function(e, f, a, h, g) { return h * Math.sin(f / g * (Math.PI / 2)) + a }, easeInOutSine: function(e, f, a, h, g) { return -h / 2 * (Math.cos(Math.PI * f / g) - 1) + a }, easeInExpo: function(e, f, a, h, g) { return (f == 0) ? a : h * Math.pow(2, 10 * (f / g - 1)) + a }, easeOutExpo: function(e, f, a, h, g) { return (f == g) ? a + h : h * (-Math.pow(2, -10 * f / g) + 1) + a }, easeInOutExpo: function(e, f, a, h, g) { if (f == 0) { return a } if (f == g) { return a + h } if ((f /= g / 2) < 1) { return h / 2 * Math.pow(2, 10 * (f - 1)) + a } return h / 2 * (-Math.pow(2, -10 * --f) + 2) + a }, easeInCirc: function(e, f, a, h, g) { return -h * (Math.sqrt(1 - (f /= g) * f) - 1) + a }, easeOutCirc: function(e, f, a, h, g) { return h * Math.sqrt(1 - (f = f / g - 1) * f) + a }, easeInOutCirc: function(e, f, a, h, g) { if ((f /= g / 2) < 1) { return -h / 2 * (Math.sqrt(1 - f * f) - 1) + a } return h / 2 * (Math.sqrt(1 - (f -= 2) * f) + 1) + a }, easeInElastic: function(f, h, e, l, k) { var i = 1.70158; var j = 0; var g = l; if (h == 0) { return e } if ((h /= k) == 1) { return e + l } if (!j) { j = k * 0.3 } if (g < Math.abs(l)) { g = l; var i = j / 4 } else { var i = j / (2 * Math.PI) * Math.asin(l / g) } return -(g * Math.pow(2, 10 * (h -= 1)) * Math.sin((h * k - i) * (2 * Math.PI) / j)) + e }, easeOutElastic: function(f, h, e, l, k) { var i = 1.70158; var j = 0; var g = l; if (h == 0) { return e } if ((h /= k) == 1) { return e + l } if (!j) { j = k * 0.3 } if (g < Math.abs(l)) { g = l; var i = j / 4 } else { var i = j / (2 * Math.PI) * Math.asin(l / g) } return g * Math.pow(2, -10 * h) * Math.sin((h * k - i) * (2 * Math.PI) / j) + l + e }, easeInOutElastic: function(f, h, e, l, k) { var i = 1.70158; var j = 0; var g = l; if (h == 0) { return e } if ((h /= k / 2) == 2) { return e + l } if (!j) { j = k * (0.3 * 1.5) } if (g < Math.abs(l)) { g = l; var i = j / 4 } else { var i = j / (2 * Math.PI) * Math.asin(l / g) } if (h < 1) { return -0.5 * (g * Math.pow(2, 10 * (h -= 1)) * Math.sin((h * k - i) * (2 * Math.PI) / j)) + e } return g * Math.pow(2, -10 * (h -= 1)) * Math.sin((h * k - i) * (2 * Math.PI) / j) * 0.5 + l + e }, easeInBack: function(e, f, a, i, h, g) { if (g == undefined) { g = 1.70158 } return i * (f /= h) * f * ((g + 1) * f - g) + a }, easeOutBack: function(e, f, a, i, h, g) { if (g == undefined) { g = 1.70158 } return i * ((f = f / h - 1) * f * ((g + 1) * f + g) + 1) + a }, easeInOutBack: function(e, f, a, i, h, g) { if (g == undefined) { g = 1.70158 } if ((f /= h / 2) < 1) { return i / 2 * (f * f * (((g *= (1.525)) + 1) * f - g)) + a } return i / 2 * ((f -= 2) * f * (((g *= (1.525)) + 1) * f + g) + 2) + a }, easeInBounce: function(e, f, a, h, g) { return h - jQuery.easing.easeOutBounce(e, g - f, 0, h, g) + a }, easeOutBounce: function(e, f, a, h, g) { if ((f /= g) < (1 / 2.75)) { return h * (7.5625 * f * f) + a } else { if (f < (2 / 2.75)) { return h * (7.5625 * (f -= (1.5 / 2.75)) * f + 0.75) + a } else { if (f < (2.5 / 2.75)) { return h * (7.5625 * (f -= (2.25 / 2.75)) * f + 0.9375) + a } else { return h * (7.5625 * (f -= (2.625 / 2.75)) * f + 0.984375) + a } } } }, easeInOutBounce: function(e, f, a, h, g) { if (f < g / 2) { return jQuery.easing.easeInBounce(e, f * 2, 0, h, g) * 0.5 + a } return jQuery.easing.easeOutBounce(e, f * 2 - g, 0, h, g) * 0.5 + h * 0.5 + a } });