https://esquilamisional.org/wp-content/plugins/go_pricing/assets/js/go_pricing_scripts.js?ver=3.3.17
1/** 2 * Go Pricing - WordPress Responsive Pricing Tables 3 * 4 * Description: The New Generation Pricing Tables. If you like traditional Pricing Tables, but you would like get much more out of it, then this rodded product is a useful tool for you. 5 * Version: 3.3.17 6 * Author: Granth 7 * License: https://codecanyon.net/licenses/ 8 * 9 * (C) 2020 Granth (https://granthweb.com) 10 */ 11 12var gwGS = gwGS || {}; 13; (function ($, TimelineLite, TweenLite, undefined) { 14 "use strict"; 15 16 /** 17 * Initialize 18 */ 19 20 $.GoPricing = { 21 22 /* Init function */ 23 Init: function () { 24 this.$wrap = $('.gw-go'); 25 this.fixWidth(); 26 this.equalize = this.$wrap.data('equalize'); 27 this.InitMediaElementPlayer(); 28 this.InitGoogleMap(); 29 this.isIE = document.documentMode != undefined && document.documentMode > 5 ? document.documentMode : false; 30 if (this.isIE) { 31 this.$wrap.addClass('gw-go-ie'); 32 if (this.isIE < 9) this.$wrap.addClass('gw-go-oldie'); 33 }; 34 if ($.GoPricing != undefined && $.GoPricing.equalize) { 35 this.EqualizeRows(); 36 }; 37 this.InitAnim(); 38 this.eventType = this.detectEvent(); 39 this.timeout = []; 40 41 }, 42 43 InitAnim: function () { 44 this.$wrap.each(function (i, obj) { 45 46 $(obj).css('opacity', 1); 47 if (!TimelineLite || !TweenLite) return; 48 49 var $cols = $(".gw-go-col-wrap[data-col-anim]", this); 50 if ($cols.length) { 51 var tl = new TimelineLite({ 52 paused: true, 53 onStart: function () { 54 var tw = this.getChildren(), i = tw.length; 55 while (i--) if (tw[i].vars.onUpdate) tw[i].vars.onUpdate(); 56 } 57 }); 58 $cols.each(function (i, col) { 59 var anim = $(col).data('col-anim') || {}; 60 if (anim.trans) { 61 anim.css.opacity /= 100, anim.css.scaleX /= 100, anim.css.scaleY /= 100; 62 tl.add(TweenLite.from(col, anim.trans.duration / 1000, { css: anim.css, ease: anim.trans.ease }), anim.trans.delay / 1000); 63 } 64 if (anim.count) { 65 var $price = $('[data-id=price]', col), 66 counter = { value: (anim.count.from || 0) }, 67 $amount = $price.find('[data-id=amount]'), 68 price = $price.data('price') || 0, 69 currency = $price.data('currency') || {}, 70 decimals = (price || '').toString().split('.')[1] || '', 71 decCnt = decimals.length; 72 73 if ($price.data('trailing-zero')) decCnt = $price.data('decimal-no'); 74 75 tl.add(TweenLite.to(counter, anim.count.duration / 1000, { 76 value: price, 77 ease: anim.count.ease, 78 onUpdate: function () { 79 var c = counter.value 80 $amount.html(function () { 81 var parts = parseFloat(c).toFixed(decCnt).split('.'); 82 parts[0] = parts[0].replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1" + (currency['thousand-sep'] || ' ')); 83 parts[1] = parts[1] ? ((currency['decimal-sep'] || '.') + parts[1]) : ''; 84 return parts[0] + parts[1]; 85 }); 86 87 }, 88 }), anim.count.delay / 1000); 89 } 90 }); 91 var $this = $(this).data('tl', tl); 92 $this.tablespy({ offset: $this.data('scroll-offset') }); 93 TweenLite.set(this, { perspective: '1000px' }); 94 } 95 }); 96 }, 97 98 /* Show Tooltip */ 99 showTooltip: function ($elem, content, top) { 100 101 if ($elem === undefined) return; 102 103 var $rowTooltip = $elem.find('.gw-go-tooltip-content'), 104 rowTooltipContent = $rowTooltip.length ? $rowTooltip.prop('outerHTML') : '', 105 $colWrap = $elem.closest('.gw-go-col-wrap'), 106 $col = $colWrap.find('.gw-go-col'), 107 $tooltip = $col.find('.gw-go-tooltip'), 108 colIndex = $colWrap.data('col-index'), 109 rIndex = $elem.data('row-index'); 110 111 if (!$tooltip.length) $tooltip = $('<div class="gw-go-tooltip"></div>').appendTo($col); 112 113 if ($tooltip.data('index') != rIndex) { 114 $tooltip.removeClass('gw-go-tooltip-visible'); 115 } else { 116 clearTimeout($.GoPricing.timeout[colIndex]); 117 } 118 119 if (rowTooltipContent != '') { 120 // Set max width for the tooltip 121 $tooltip.css('max-width', $elem.closest('.gw-go-col').width() - 10); 122 $tooltip.html(rowTooltipContent).data('index', rIndex) 123 var corr = $col.position().top; 124 setTimeout(function () { $tooltip.addClass('gw-go-tooltip-visible').css('top', $elem.find('.gw-go-body-cell').offset().top - $col.closest('.gw-go-col-wrap').offset().top - $tooltip.outerHeight() - 16 - corr) }, 10); 125 } 126 127 }, 128 129 /* Hide Tooltip */ 130 hideTooltip: function ($elem) { 131 132 if ($elem === undefined) return; 133 134 if ($elem.hasClass('gw-go-tooltip')) { 135 $elem.removeClass('gw-go-tooltip-visible'); 136 } else { 137 138 var $colWrap = $elem.closest('.gw-go-col-wrap'), 139 $col = $colWrap.find('.gw-go-col'), 140 $tooltip = $col.find('.gw-go-tooltip'), 141 colIndex = $colWrap.data('col-index'); 142 143 $.GoPricing.timeout[colIndex] = setTimeout(function () { $tooltip.removeClass('gw-go-tooltip-visible'); }, 10); 144 145 } 146 147 }, 148 149 /* Mediaelement Player init */ 150 InitMediaElementPlayer: function () { 151 152 if (jQuery().mediaelementplayer && $.GoPricing.$wrap.find('audio, video').length) { 153 $.GoPricing.$wrap.find('audio, video').mediaelementplayer({ 154 audioWidth: '100%', 155 videoWidth: '100%' 156 }); 157 }; 158 159 }, 160 161 /* Google map init */ 162 InitGoogleMap: function () { 163 164 if (jQuery().goMap && $.GoPricing.$wrap.find('.gw-go-gmap').length) { 165 $.GoPricing.$wrap.find('.gw-go-gmap').each(function (index) { 166 var $this = $(this); 167 $this.goMap($this.data('map')); 168 }); 169 }; 170 171 }, 172 173 loadImages: function ($pricingTable) { 174 175 if (!$pricingTable.data('images') || $pricingTable.data('imagesLoaded')) return; 176 177 var images = $pricingTable.data('images'), 178 loadedCount = $pricingTable.data('imagesLoadedCnt') ? parseInt($pricingTable.data('imagesLoadedCnt')) : 0; 179 180 for (var x = 0; x < images.length; x++) { 181 var image = images[x]; 182 if ($(image.el).data('loading')) continue; 183 $(image.el).data('loading', true); 184 var img = new Image(); 185 img.onerror = function () { 186 $pricingTable.data('imagesLoadedCnt', ++loadedCount); 187 }; 188 img.onload = function (e) { 189 $pricingTable.data('imagesLoadedCnt', ++loadedCount); 190 }; 191 img.src = image.el.src; 192 } 193 194 if (loadedCount == images.length) { 195 $pricingTable.data('imagesLoaded', true); 196 this.EqualizeRows(); 197 return; 198 } 199 200 setTimeout($.proxy(function () { 201 this.loadImages($pricingTable); 202 }, this), 100); 203 204 }, 205 206 /* Fix width in webkit browsers */ 207 fixWidth: function () { 208 209 if ('WebkitAppearance' in document.documentElement.style === false || window.StyleMedia) return; 210 211 for (var x = 0; x < $.GoPricing.$wrap.length; x++) { 212 213 var $pricingTable = $.GoPricing.$wrap.eq(x), 214 $cols = $pricingTable.find('.gw-go-col-wrap'); 215 216 if ($pricingTable.is(':hidden') || $pricingTable.offset().top > parseInt($(document).scrollTop() + window.innerHeight + 500) || $pricingTable.data('fix-width') === true || $cols.length < 2) continue; 217 218 for (var i = 0; i < $cols.length; i++) { 219 220 var $col = $cols.eq(i), 221 fixedMaxWidth = parseInt($pricingTable.data('mw')), 222 maxWidth = Math.floor(parseFloat(window.getComputedStyle($col[0]).width)); 223 224 if (!fixedMaxWidth || maxWidth < fixedMaxWidth) { 225 $cols.css('max-width', 'none'); 226 $cols.css('max-width', Math.floor(parseFloat(window.getComputedStyle($col[0]).width))); 227 } 228 229 } 230 231 $pricingTable.data('fix-width', true); 232 233 } 234 235 }, 236 237 /* Equalize rows */ 238 EqualizeRows: function () { 239 240 for (var x = 0; x < $.GoPricing.$wrap.length; x++) { 241 242 if ($.GoPricing.$wrap.eq(x).is(':hidden') || $.GoPricing.$wrap.eq(x).offset().top > parseInt($(document).scrollTop() + window.innerHeight + 500) || $.GoPricing.$wrap.eq(x).data('eq-ready') === true) continue; 243 244 var $pricingTable = $.GoPricing.$wrap.eq(x), 245 $colWrap = $pricingTable.find('.gw-go-col-wrap:visible'), 246 colCnt = $colWrap.length, 247 equalizeCnt = colCnt, 248 views = $pricingTable.data('views') !== undefined ? $pricingTable.data('views') : {}; 249 250 /* Load images */ 251 if (!$pricingTable.data('images') && !$pricingTable.data('imagesLoaded')) { 252 var images = []; 253 if ($pricingTable.data('equalize').body != undefined) { $pricingTable.find('.gw-go-body li .gw-go-body-cell:visible img').each(function (index, el) { images.push({ 'ready': false, 'el': el }) }); } 254 if ($pricingTable.data('equalize').footer != undefined) { $pricingTable.find('.gw-go-footer .gw-go-footer-row-inner:visible img').each(function (index, el) { images.push({ 'ready': false, 'el': el }) }); } 255 if ($pricingTable.data('equalize').column != undefined) { $pricingTable.find('.gw-go-header img').each(function (index, el) { images.push({ 'ready': false, 'el': el }) }); } 256 257 if (images.length) $pricingTable.data('images', images); 258 259 } 260 261 if ($pricingTable.data('images') && !$pricingTable.data('imagesLoaded')) { 262 this.loadImages($pricingTable); 263 continue; 264 } 265 266 for (var key in views) { 267 268 var mqSizes = [], mq = ''; 269 if (views[key].min !== undefined && views[key].min !== '') mqSizes.push('(min-width:' + views[key].min + 'px)'); 270 if (views[key].max !== undefined && views[key].max !== '') mqSizes.push('(max-width:' + views[key].max + 'px)'); 271 mq = mqSizes.join(' and '); 272 273 if (mq != '') if (window.matchMedia && window.matchMedia(mq).matches) { 274 equalizeCnt = views[key].cols !== undefined && views[key].cols !== '' && views[key].cols <= colCnt ? views[key].cols : colCnt; 275 } 276 277 } 278 279 if (equalizeCnt == 1) { 280 $pricingTable.find('.gw-go-body li .gw-go-body-cell').css('height', 'auto'); 281 $pricingTable.find('.gw-go-col-wrap').css('height', 'auto'); 282 $pricingTable.find('.gw-go-footer').css('height', 'auto'); 283 continue; 284 } 285 286 for (var z = 0; z < colCnt / equalizeCnt; z++) { 287 288 if (!$pricingTable.is(':hidden')) $pricingTable.data('eq-ready', true); 289 290 var rowHeights = [], footerHeights = [], colHeights = []; 291 292 /* Body */ 293 if ($pricingTable.data('equalize').body != undefined) { 294 295 for (var i = 0; i < colCnt; i++) { 296 if (i >
296= (z * equalizeCnt) && i <= (z * equalizeCnt) + equalizeCnt - 1) { 297 var $currentCol = $colWrap.eq(i), 298 $row = $currentCol.find('.gw-go-body li .gw-go-body-cell:visible'); 299 300 for (var rIndex = 0; rIndex < $row.length; rIndex++) { 301 302 var $currentRow = $row.eq(rIndex); 303 $currentRow.css('height', 'auto'); 304 305 if (typeof rowHeights[rIndex] !== 'undefined') { 306 if ($currentRow.height() > rowHeights[rIndex]) { 307 rowHeights[rIndex] = $currentRow.height(); 308 } 309 } else { 310 rowHeights[rIndex] = $currentRow.height(); 311 } 312 313 } 314 315 } 316 317 } 318 319 for (var i = 0; i < colCnt; i++) { 320 var $currentCol = $colWrap.eq(i), 321 $row = $currentCol.find('.gw-go-body li .gw-go-body-cell:visible'); 322 323 if (i >= (z * equalizeCnt) && i <= (z * equalizeCnt) + equalizeCnt - 1) { 324 for (var rIndex = 0; rIndex < $row.length; rIndex++) { 325 var $currentRow = $row.eq(rIndex); 326 $currentRow.css('height', rowHeights[rIndex]); 327 } 328 329 } 330 331 332 333 } 334 335 } 336 337 /* Footer */ 338 if ($pricingTable.data('equalize').footer != undefined) { 339 340 for (var i = 0; i < colCnt; i++) { 341 if (i >= (z * equalizeCnt) && i <= (z * equalizeCnt) + equalizeCnt - 1) { 342 var $currentCol = $colWrap.eq(i), 343 $row = $currentCol.find('.gw-go-footer .gw-go-footer-row-inner:visible'); 344 345 for (var rIndex = 0; rIndex < $row.length; rIndex++) { 346 347 var $currentRow = $row.eq(rIndex); 348 $currentRow.css('height', 'auto'); 349 350 if (typeof footerHeights[rIndex] !== 'undefined') { 351 if ($currentRow.height() > footerHeights[rIndex]) { 352 footerHeights[rIndex] = $currentRow.height(); 353 } 354 } else { 355 footerHeights[rIndex] = $currentRow.height(); 356 } 357 358 } 359 360 } 361 362 } 363 364 for (var i = 0; i < colCnt; i++) { 365 var $currentCol = $colWrap.eq(i), 366 $row = $currentCol.find('.gw-go-footer .gw-go-footer-row-inner:visible'); 367 368 if (i >= (z * equalizeCnt) && i <= (z * equalizeCnt) + equalizeCnt - 1) { 369 for (var rIndex = 0; rIndex < $row.length; rIndex++) { 370 var $currentRow = $row.eq(rIndex); 371 $currentRow.css('height', footerHeights[rIndex]); 372 } 373 374 } 375 376 377 378 } 379 380 } 381 382 /* Column */ 383 if ($pricingTable.data('equalize').column != undefined) { 384 385 for (var i = 0; i < colCnt; i++) { 386 var $currentCol = $colWrap.eq(i); 387 388 if (i >= (z * equalizeCnt) && i <= (z * equalizeCnt) + equalizeCnt - 1) { 389 $currentCol.css('height', 'auto'); 390 if (typeof colHeights[z] !== 'undefined') { 391 if ($currentCol.outerHeight(true) > colHeights[z]) { 392 colHeights[z] = $currentCol.outerHeight(false); 393 } 394 } else { 395 colHeights[z] = $currentCol.outerHeight(false); 396 } 397 } 398 399 } 400 401 for (var i = 0; i < colCnt; i++) { 402 var $currentCol = $colWrap.eq(i); 403 404 if (i >= (z * equalizeCnt) && i <= (z * equalizeCnt) + equalizeCnt - 1) { 405 $currentCol.css('height', colHeights[z]); 406 } 407 408 } 409 410 } 411 412 413 } 414 415 } 416 417 }, 418 419 /* Detect event type */ 420 detectEvent: function () { 421 var eventType = 'mouseenter mouseleave'; 422 if ('ontouchstart' in window) { 423 eventType = 'touchstart'; 424 } else if (window.navigator.pointerEnabled && navigator.msMaxTouchPoints) { 425 eventType = "pointerdown"; 426 } else if (window.navigator.msPointerEnabled && navigator.msMaxTouchPoints) { 427 eventType = "MSPointerDown"; 428 } 429 return eventType; 430 } 431 432 }; 433 434 $(function () { 435 436 /* Init */ 437 $.GoPricing.Init(); 438 439 $(window).on('scroll', function () { 440 441 $.GoPricing.fixWidth(); 442 $.GoPricing.EqualizeRows(); 443 444 }); 445 446 /* Submit button event if form found */ 447 $.GoPricing.$wrap.delegate('span.gw-go-btn', 'click', function () { 448 var $this = $(this); 449 if ($this.find('form').length) { $this.find('form').submit(); }; 450 }); 451 452 453 /* Show & hide tooltip - Event on tooltip */ 454 $.GoPricing.$wrap.on('mouseenter mouseleave', '.gw-go-tooltip', function (e) { 455 456 var $this = $(this), 457 $colWrap = $this.closest('.gw-go-col-wrap'), 458 colIndex = $colWrap.data('col-index'); 459 460 if (e.type == 'mouseenter') { 461 clearTimeout($.GoPricing.timeout[colIndex]); 462 } else { 463 $.GoPricing.timeout[colIndex] = setTimeout(function () { $.GoPricing.hideTooltip($this); }, 10); 464 } 465 466 }); 467 468 469 /* Show & hide tooltip - Event on row */ 470 $.GoPricing.$wrap.on('mouseenter mouseleave', 'ul.gw-go-body > li', function (e) { 471 472 var $this = $(this); 473 474 if (e.type == 'mouseenter') { 475 $.GoPricing.showTooltip($this); 476 } else { 477 $.GoPricing.hideTooltip($this); 478 } 479 480 }); 481 482 483 /* Column hover / touch - supports mouse, touch and pointers */ 484 485 // Pointer enter event 486 function enterEvent($elem) { 487 $elem.addClass('gw-go-curr'); 488 $elem.siblings().data('leave-event', null).data('enter-event', null); 489 $elem.data('leave-event', null); 490 if ($elem.hasClass('gw-go-disable-hover')) { 491 $elem.siblings(':not(.gw-go-disable-hover)').removeClass('gw-go-hover'); 492 } else { 493 $elem.addClass('gw-go-hover').siblings(':not(.gw-go-disable-hover)').removeClass('gw-go-hover'); 494 $elem.closest('.gw-go').addClass('gw-go-hover'); 495 } 496 }; 497 498 // Pointer leave event 499 function leaveEvent($elem) { 500 $elem.siblings().data('leave-event', null).data('enter-event', null); 501 $elem.data('enter-event', null); 502 $elem.removeClass('gw-go-curr'); 503 if ($elem.hasClass('gw-go-disable-hover')) { 504 $elem.closest('.gw-go').find('[data-current="1"]:not(.gw-go-disable-hover)').addClass('gw-go-hover'); 505 } else { 506 $elem.removeClass('gw-go-hover'); 507 $elem.closest('.gw-go').find('[data-current="1"]:not(.gw-go-disable-hover)').addClass('gw-go-hover'); 508 $elem.closest('.gw-go').removeClass('gw-go-hover'); 509 } 510 }; 511 512 // Enter event handling 513 $(document).on('pointerenter mouseenter pointerdown touchstart', '.gw-go-col-wrap', function (e) { 514 e.stopPropagation(); 515 var $this = $(this); 516 $this.closest('.gw-go').find('.gw-go-col-wrap').removeClass('gw-go-curr'); 517 if ($this.hasClass('gw-go-disable-hover')) { 518 $this.addClass('gw-go-curr'); 519 return; 520 } 521 $this.data('leave-event', null); 522 523 if ($this.data('enter-event')) return; 524 var event = { 525 pointer: e.originalEvent.pointerType == 'touch' || e.type == 'touchstart' ? 'touch' : 'mouse', 526 pageX: e.originalEvent.changedTouches ? e.originalEvent.changedTouches[0].pageX : e.originalEvent.pageX, 527 pageY: e.originalEvent.changedTouches ? e.originalEvent.changedTouches[0].pageY : e.originalEvent.pageY, 528 }; 529 if (event.pointer == 'mouse') { 530 enterEvent($this); 531 }; 532 $this.data('enter-event', event); 533 }); 534 535 // Leave event handling 536 $(document).on('pointerleave mouseleave pointerup touchend', '.gw-go-col-wrap', function (e) { 537 e.stopPropagation(); 538 var $this = $(this); 539 540 if ($this.hasClass('gw-go-disable-hover')) return; 541 542 if (!$this.data('enter-event') || $this.data('leave-event')) return; 543 var event = { 544 pointer: e.originalEvent.pointerType == 'touch' || e.type == 'touchend' ? 'touch' : 'mouse', 545 pageX: e.originalEvent.changedTouches ? e.originalEvent.changedTouches[0].pageX : e.originalEvent.pageX, 546 pageY: e.originalEvent.changedTouches ? e.originalEvent.changedTouches[0].pageY : e.originalEvent.pageY, 547 }; 548 if (event.pointer == 'mouse') { 549 $this.data('leave-event', event); 550 leaveEvent($this); 551 } else { 552 if (!$this.data('leave-event')) {
553 if (Math.abs($this.data('enter-event').pageX - event.pageX) > 20 || Math.abs($this.data('enter-event').pageY - event.pageY) > 20) { 554 $this.data('enter-event', null); 555 return; 556 } 557 enterEvent($this); 558 $this.data('leave-event', event); 559 $(document).on('touchstart.goprEvent pointermove.goprEvent mousemove.goprEvent', function (e) { 560 if ($(e.target).closest('.go-pricing').length) return; 561 leaveEvent($this); 562 $this.data('leave-event', null); 563 $this.data('enter-event', null); 564 $(document).off('.goprEvent'); 565 }); 566 } 567 } 568 569 }); 570 571 /** 572 * Google map 573 */ 574 if (typeof jQuery.goMap !== 'undefined' && $.GoPricing.$wrap.find('.gw-go-gmap').length) { 575 var GoPricing_MapResize = false; 576 $(window).on('resize', function (e) { 577 if (GoPricing_MapResize) { clearTimeout(GoPricing_MapResize); } 578 GoPricing_MapResize = setTimeout(function () { 579 $.GoPricing.$wrap.find('.gw-go-gmap').each(function (index, element) { 580 //$(this).goMap(); 581 //console.log($.goMap.getMarkers('markers')[0].position); 582 }); 583 }, 400); 584 }); 585 }; 586 587 588 /* Equalize heights on resize */ 589 $(window).on('resize load', function (e) { 590 591 for (var x = 0; x < $.GoPricing.$wrap.length; x++) { 592 $.GoPricing.$wrap.eq(x).data('eq-ready', false); 593 $.GoPricing.$wrap.eq(x).data('fix-width', false); 594 } 595 $.GoPricing.fixWidth(); 596 $.GoPricing.EqualizeRows(); 597 598 }); 599 600 /* handle animations */ 601 $(window).on("scrollEnter scrollLeave", function (e, spy) { 602 var $target = $(e.target); 603 604 if ($target.data('anim') == 'off' || typeof spy === 'undefined') return; 605 var repeat = $target.data("anim-repeat") || Infinity; 606 if (e.type == "scrollEnter") { 607 if (spy.enters <= repeat) $target.data("tl").play(); 608 } else { 609 if (spy.enters < repeat) $target.data("tl").stop().seek(0); 610 } 611 }); 612 613 }); 614 615 616})(jQuery, gwGS.TimelineLite, gwGS.TweenLite); 617 618; (function ($, window, undefined) { 619 620 var $elems = $(); 621 var $cont = $(window) 622 .on("resize.tablespy", onResize) 623 .on("load.tablespy", onResize) 624 .on("scroll.tablespy load.tablespy", onScroll); 625 626 if (window.frameElement) { 627 window.parent.onload = function () { onScroll(); } 628 } 629 630 631 function onScroll() { 632 if (!$elems.length) return; 633 var height = $cont.height(); 634 var y = $cont.scrollTop(); 635 $elems.each(function () { 636 var $elem = $(this); 637 var o = $elem.data('tablespy'); 638 if (typeof o === "undefined") return; 639 var offset = o.rowHeight * o.offset / 100; 640 641 if (Math.floor((o.rowHeight + height) / 2) < offset) offset = Math.floor((o.rowHeight + height) / 2) - 20; 642 643 if (height + y - offset >= o.min && y + offset <= o.max) { 644 if (!o.inside) { 645 o.inside = true; 646 o.enters++; 647 $elem.trigger("scrollEnter", { scrollTop: y, enters: o.enters, leaves: o.leaves }); 648 } 649 $elem.trigger("scrollTick", { scrollTop: y, enters: o.enters, leaves: o.leaves }); 650 } 651 if (o.inside && !(height + y >= o.min && y <= o.max)) { 652 o.inside = false;
653 o.leaves++; 654 $elem.trigger("scrollLeave", { scrollTop: y, enters: o.enters, leaves: o.leaves }); 655 } 656 }); 657 } 658 659 function onResize() { 660 $elems.each(function () { 661 var $elem = $(this); 662 var o = $elem.data("tablespy"); 663 if (typeof o === "undefined") return; 664 o.min = $elem.offset().top; 665 o.max = $elem.outerHeight() + o.min; 666 o.rowHeight = $elem.children(":visible:first").outerHeight(); 667 }); 668 } 669 670 $.fn.tablespy = function (options) { 671 var defaults = { 672 offset: 0, 673 enters: 0, 674 leaves: 0, 675 inside: false 676 }; 677 return this.each(function () { 678 var $elem = $(this); 679 var top = $elem.offset().top; 680 $elem.data("tablespy", $.extend({ 681 min: top, 682 max: top + $elem.outerHeight(), 683 rowHeight: $elem.children(":visible:first").outerHeight() 684 }, defaults, options)); 685 $elems.push(this); 686 }); 687 }; 688 689 /* Disable animation */ 690 $.GoPricing.disableAnim = function () { 691 this.$wrap.each(function (index, element) { 692 $(element).addClass('test'); 693 $(element).data('anim', 'off'); 694 $(element).css('opacity', 1); 695 if (typeof $(element).data("tl") === 'undefined') { 696 return; 697 } 698 if ($(element).data("tl").progress() == 1) return; 699 $(element).data("tl").progress(1); 700 }); 701 }; 702 703})(jQuery, window);
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.