1/*! 2 * multiscroll.js 0.1.8 Beta 3 * https://github.com/alvarotrigo/multiscroll.js 4 * @license MIT licensed 5 * 6 * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo 7 */ 8!function (e, t, n, o, i) { 9 e.fn.multiscroll = function (s) { 10 function a() { 11 var n = t.location.hash.replace("#", ""), o = n; 12 if (o.length) { 13 var i = e(".ms-left").find('[data-anchor="' + o + '"]'), s = "undefined" == typeof lastScrolledDestiny; 14 (s || o !== lastScrolledDestiny) && h(i) 15 } 16 } 17 18 function l(t) { 19 clearTimeout(O); 20 var o = e(n.activeElement); 21 if (!o.is("textarea") && !o.is("input") && !o.is("select") && s.keyboardScrolling) { 22 var i = t.which, a = [40, 38, 32, 33, 34]; 23 e.inArray(i, a) > -1 && t.preventDefault(), O = setTimeout(function () { 24 r(t) 25 }, 150) 26 } 27 } 28 29 function r(t) { 30 var n = t.shiftKey; 31 switch (t.which) { 32 case 38: 33 case 33: 34 X.moveSectionUp(); 35 break; 36 case 32: 37 if (n) { 38 X.moveSectionUp(); 39 break 40 } 41 case 40: 42 case 34: 43 X.moveSectionDown(); 44 break; 45 case 36: 46 X.moveTo(1); 47 break; 48 case 35: 49 X.moveTo(e(".ms-left .ms-section").length); 50 break; 51 default: 52 return 53 } 54 } 55 56 function c(t) { 57 t.preventDefault(); 58 var n = e(this).parent().index(); 59 h(e(".ms-left .ms-section").eq(n)) 60 } 61 62 function m() { 63 var t = e(this).data("tooltip"); 64 e('<div class="multiscroll-tooltip ' + s.navigationPosition + '">' + t + "</div>").hide().appendTo(e(this)).fadeIn(200) 65 } 66 67 function f() { 68 e(this).find(".multiscroll-tooltip").fadeOut(200, function () { 69 e(this).remove() 70 }) 71 } 72 73 function d() { 74 N = e(t).height(), e(".ms-tableCell").each(function () { 75 e(this).css({height: P(e(this).parent())}) 76 }), u(), e.isFunction(s.afterResize) && s.afterResize.call(this) 77 } 78 79 function u() { 80 s.css3 ? (S(e(".ms-left"), "translate3d(0px, -" + e(".ms-left").find(".ms-section.active").position().top + "px, 0px)", !1), S(e(".ms-right"), "translate3d(0px, -" + e(".ms-right").find(".ms-section.active").position().top + "px, 0px)", !1)) : (e(".ms-left").css("top", -e(".ms-left").find(".ms-section.active").position().top), e(".ms-right").css("top", -e(".ms-right").find(".ms-section.active").position().top)) 81 } 82 83 function h(t) { 84 var n = t.index(), o = e(".ms-right").find(".ms-section").eq(W - 1 - n), i = t.data("anchor"), a = e(".ms-left .ms-section.active"), l = a.index() + 1, r = b(t); 85 K = !0; 86 var c = {left: t.position().top, right: o.position().top}; 87 if (o.addClass("active").siblings().removeClass("active"), t.addClass("active").siblings().removeClass("active"), C(i), s.css3) { 88 e.isFunction(s.onLeave) && s.onLeave.call(this, l, n + 1, r); 89 var m = "translate3d(0px, -" + c.left + "px, 0px)", f = "translate3d(0px, -" + c.right + "px, 0px)"; 90 S(e(".ms-left"), m, !0), S(e(".ms-right"), f, !0), setTimeout(function () { 91 e.isFunction(s.afterLoad) && s.afterLoad.call(this, i, n + 1), setTimeout(function () { 92 K = !1 93 }, q) 94 }, s.scrollingSpeed) 95 } else e.isFunction(s.onLeave) && s.onLeave.call(this, l, n + 1, r), e(".ms-left").animate({top: -c.left}, s.scrollingSpeed, s.easing, function () { 96 e.isFunction(s.afterLoad) && s.afterLoad.call(this, i, n + 1), setTimeout(function () { 97 K = !1 98 }, q) 99 }), e(".ms-right").animate({top: -c.right}, s.scrollingSpeed, s.easing); 100 lastScrolledDestiny = i, w(i), x(i, n) 101 } 102 103 function v() { 104 n.addEventListener ? (n.removeEventListener("mousewheel", g, !1), n.removeEventListener("wheel", g, !1)) : n.detachEvent("onmousewheel", g) 105 } 106 107 function p() { 108 n.addEventListener ? (n.addEventListener("mousewheel", g, !1), n.addEventListener("wheel", g, !1)) : n.attachEvent("onmousewheel", g) 109 } 110 111 function g(e) { 112 e = t.event || e; 113 var n = o.max(-1, o.min(1, e.wheelDelta || -e.deltaY || -e.detail)); 114 return K || (n < 0 ? X.moveSectionDown() : X.moveSectionUp()), !1 115 } 116 117 function S(e, t, n) { 118 e.toggleClass("ms-easing", n), e.css(y(t)) 119 } 120 121 function y(e) { 122 return {"-webkit-transform": e, "-moz-transform": e, "-ms-transform": e, transform: e} 123 } 124 125 function x(t, n) { 126 s.navigation && (e("#multiscroll-nav").find(".active").removeClass("active"), t ? e("#multiscroll-nav").find('a[href="#' + t + '"]').addClass("active") : e("#multiscroll-nav").find("li").eq(n).find("a").addClass("active")) 127 } 128 129 function w(t) { 130 s.menu && (e(s.menu).find(".active").removeClass("active"), e(s.menu).find('[data-menuanchor="' + t + '"]').addClass("active")) 131 } 132 133 function b(t) { 134 var n = e(".ms-left .ms-section.active").index(), o = t.index(); 135 return n > o ? "up" : "down" 136 } 137 138 function C(e) { 139 s.anchors.length && (location.hash = e), T() 140 } 141 142 function T() { 143 var t = e(".ms-left .ms-section.active"), n = t.data("anchor"), o = t.index(), i = String(o); 144 s.anchors.length && (i = n), i = i.replace("/", "-").replace("#", ""); 145 var a = new RegExp("\\b\\s?ms-viewing-[^\\s]+\\b", "g"); 146 e("body")[0].className = e("body")[0].className.replace(a, ""), e("body").addClass("ms-viewing-" + i) 147 } 148 149 function E() { 150 var e, o = n.createElement("p"), s = { 151 webkitTransform: "-webkit-transform", 152 OTransform: "-o-transform", 153 msTransform: "-ms-transform", 154 MozTransform: "-moz-transform", 155 transform: "transform" 156 }; 157 n.body.insertBefore(o, null); 158 for (var a in s)o.style[a] !== i && (o.style[a] = "translate3d(1px,1px,1px)", e = t.getComputedStyle(o).getPropertyValue(s[a])); 159 return n.body.removeChild(o), e !== i && e.length > 0 && "none" !== e 160 } 161 162 function M(e) { 163 e.addClass("ms-table").wrapInner('<div class="ms-tableCell" style="height: ' + P(e) + 'px" />') 164 } 165 166 function P(e) { 167 var t = N; 168 if (s.paddingTop || s.paddingBottom) { 169 var n = parseInt(e.css("padding-top")) + parseInt(e.css("padding-bottom")); 170 t = N - n 171 } 172 return t 173 } 174 175 function k() { 176 var n = t.location.hash.replace("#", ""), o = e('.ms-left .ms-section[data-anchor="' + n + '"]'); 177 n.length && h(o) 178 } 179 180 function L(n) { 181 var i = n.originalEvent; 182 if (D(i)) { 183 n.preventDefault(); 184 e(".ms-left .ms-section.active"); 185 if (!K) { 186 var a = F(i); 187 A = a.y, V = a.x, o.abs(Q - A) > e(t).height() / 100 * s.touchSensitivity && (Q > A ? X.moveSectionDown() : A > Q && X.moveSectionUp()) 188 } 189 } 190 } 191 192 function D(e) { 193 return "undefined" == typeof e.pointerType || "mouse" != e.pointerType 194 } 195 196 function z(e) { 197 var t = e.originalEvent; 198 if (D(t)) { 199 var n = F(t); 200 Q = n.y, j = n.x 201 } 202 } 203 204 function B() { 205 I && (MSPointer = Y(), e(n).off("touchstart " + MSPointer.down).on("touchstart " + MSPointer.down, z), e(n).off("touchmove " + MSPointer.move).on("touchmove " + MSPointer.move, L)) 206 } 207 208 function R() { 209 I && (MSPointer = Y(), e(n).off("touchstart " + MSPointer.down), e(n).off("touchmove " + MSPointer.move)) 210 } 211 212 function Y() { 213 var e; 214 return e = t.PointerEvent ? {down: "pointerdown", move: "pointermove"} : { 215 down: "MSPointerDown", 216 move: "MSPointerMove" 217 } 218 } 219 220 function F(e) { 221 var t = []; 222 return t.y = "undefined" != typeof e.pageY && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY, t.x = "undefined" != typeof e.pageX && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX, I && D(e) && (t.y = e.touches[0].pageY, t.x = e.touches[0].pageX), t 223 } 224 225 var X = e.fn.multiscroll; 226 s = e.extend({ 227 verticalCentered: !0, 228 scrollingSpeed: 700, 229 easing: "easeInQuart", 230 menu: !1, 231 sectionsColor: [], 232 anchors: [], 233 navigation: !1, 234 navigationPosition: "right", 235 navigationColor: "#000", 236 navigationTooltips: [], 237 loopBottom: !1, 238 loopTop: !1, 239 css3: !1, 240 paddingTop: 0, 241 paddingBottom: 0, 242 fixedElements: null, 243 normalScrollElements: null, 244 keyboardScrolling: !0, 245 touchSensitivity: 5, 246 sectionSelector: ".ms-section", 247 leftSelector: ".ms-left", 248 rightSelector: ".ms-right", 249 afterLoad: null, 250 onLeave: null, 251 afterRender: null, 252 afterResize: null 253 }, s); 254 var q = 600, I = "ontouchstart" in t || navigator.msMaxTouchPoints > 0 || navigator.maxTouchPoints;
255 ".ms-right" !== s.rightSelector && e(s.rightSelector).addClass("ms-right"), ".ms-left" !== s.leftSelector && e(s.leftSelector).addClass("ms-left"); 256 var U, W = e(".ms-left").find(".ms-section").length, K = !1, N = e(t).height(); 257 p(), B(), s.css3 && (s.css3 = E()), e("html, body").css({ 258 overflow: "hidden", 259 height: "100%" 260 }), ".ms-section" !== s.sectionSelector && e(s.sectionSelector).each(function () { 261 e(this).addClass("ms-section") 262 }), s.navigation && (e("body").append('<div id="multiscroll-nav"><ul></ul></div>'), U = e("#multiscroll-nav"), U.css("color", s.navigationColor), U.addClass(s.navigationPosition)), e(".ms-right, .ms-left").css({ 263 width: "50%", 264 position: "absolute", 265 height: "100%", 266 "-ms-touch-action": "none" 267 }), e(".ms-right").css({ 268 right: "1px", 269 top: "0", 270 "-ms-touch-action": "none", 271 "touch-action": "none" 272 }), e(".ms-left").css({ 273 left: "0", 274 top: "0", 275 "-ms-touch-action": "none", 276 "touch-action": "none" 277 }), e(".ms-left .ms-section, .ms-right .ms-section").each(function () { 278 var t = e(this).index(); 279 if ((s.paddingTop || s.paddingBottom) && e(this).css("padding", s.paddingTop + " 0 " + s.paddingBottom + " 0"), "undefined" != typeof s.sectionsColor[t] && e(this).css("background-color", s.sectionsColor[t]), "undefined" != typeof s.anchors[t] && e(this).attr("data-anchor", s.anchors[t]), s.verticalCentered && M(e(this)), e(this).closest(".ms-left").length && s.navigation) { 280 var n = ""; 281 s.anchors.length && (n = s.anchors[t]); 282 var o = s.navigationTooltips[t]; 283 "undefined" == typeof o && (o = ""), s.navigation && U.find("ul").append('<li data-tooltip="' + o + '"><a href="#' + n + '"><span></span></a></li>') 284 } 285 }), e(".ms-right").html(e(".ms-right").find(".ms-section").get().reverse()), e(".ms-left .ms-section, .ms-right .ms-section").each(function () { 286 var t = e(this).index(); 287 e(this).css({height: "100%"}), !t && s.navigation && U.find("li").eq(t).find("a").addClass("active") 288 }).promise().done(function () { 289 e(".ms-left .ms-section.active").length || (e(".ms-right").find(".ms-section").last().addClass("active"), e(".ms-left").find(".ms-section").first().addClass("active")), s.navigation && U.css("margin-top", "-" + U.height() / 2 + "px"), e.isFunction(s.afterRender) && s.afterRender.call(this), u(), T(), e(t).on("load", function () { 290 k() 291 }) 292 }), e(t).on("hashchange", a), e(n).keydown(l); 293 var O; 294 e(n).mousedown(function (e) { 295 if (1 == e.button)return e.preventDefault(), !1 296 }), e(n).on("click", "#multiscroll-nav a", c), e(n).on({ 297 mouseenter: m, 298 mouseleave: f 299 }, "#multiscroll-nav li"), s.normalScrollElements && (e(n).on("mouseenter", s.normalScrollElements, function () { 300 X.setMouseWheelScrolling(!1) 301 }), e(n).on("mouseleave", s.normalScrollElements, function () { 302 X.setMouseWheelScrolling(!0) 303 })), e(t).on("resize", d), X.moveSectionUp = function () { 304 var t = e(".ms-left .ms-section.active").prev(".ms-section"); 305 !t.length && s.loopTop && (t = e(".ms-left .ms-section").last()), t.length && h(t) 306 }, X.moveSectionDown = function () { 307 var t = e(".ms-left .ms-section.active").next(".ms-section"); 308 !t.length && s.loopBottom && (t = e(".ms-left .ms-section").first()), t.length && h(t) 309 }, X.moveTo = function (t) { 310 var n = ""; 311 n = isNaN(t) ? e('.ms-left [data-anchor="' + t + '"]') : e(".ms-left .ms-section").eq(t - 1), h(n) 312 }, X.setKeyboardScrolling = function (e) { 313 s.keyboardScrolling = e 314 }, X.setMouseWheelScrolling = function (e) { 315 e ? p() : v() 316 }, X.setScrollingSpeed = function (e) { 317 s.scrollingSpeed = e 318 }; 319 var Q = 0, j = 0, A = 0, V = 0; 320 X.destroy = function () { 321 X.setKeyboardScrolling(!1), X.setMouseWheelScrolling(!1), R(), e(t).off("hashchange", a).off("resize", d), e(n).off("mouseenter", "#multiscroll-nav li").off("mouseleave", "#multiscroll-nav li").off("
321click", "#multiscroll-nav a") 322 }, X.build = function () { 323 X.setKeyboardScrolling(!0), X.setMouseWheelScrolling(!0), B(), e(t).on("hashchange", a).on("resize", d), e(n).on("mouseenter", "#multiscroll-nav li", m).on("mouseleave", "#multiscroll-nav li", f).on("click", "#multiscroll-nav a", c) 324 } 325 } 326}(jQuery, window, document, Math);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.