Blame view
assets/plugins/waypoints/shortcuts/infinite.js
2.17 KB
cf76164e6 20190709 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
/*! Waypoints Infinite Scroll Shortcut - 4.0.0 Copyright © 2011-2015 Caleb Troughton Licensed under the MIT license. https://github.com/imakewebthings/waypoints/blog/master/licenses.txt */ (function() { 'use strict' var $ = window.jQuery var Waypoint = window.Waypoint /* http://imakewebthings.com/waypoints/shortcuts/infinite-scroll */ function Infinite(options) { this.options = $.extend({}, Infinite.defaults, options) this.container = this.options.element if (this.options.container !== 'auto') { this.container = this.options.container } this.$container = $(this.container) this.$more = $(this.options.more) if (this.$more.length) { this.setupHandler() this.waypoint = new Waypoint(this.options) } } /* Private */ Infinite.prototype.setupHandler = function() { this.options.handler = $.proxy(function() { this.options.onBeforePageLoad() this.destroy() this.$container.addClass(this.options.loadingClass) $.get($(this.options.more).attr('href'), $.proxy(function(data) { var $data = $($.parseHTML(data)) var $newMore = $data.find(this.options.more) var $items = $data.find(this.options.items) if (!$items.length) { $items = $data.filter(this.options.items) } this.$container.append($items) this.$container.removeClass(this.options.loadingClass) if (!$newMore.length) { $newMore = $data.filter(this.options.more) } if ($newMore.length) { this.$more.replaceWith($newMore) this.$more = $newMore this.waypoint = new Waypoint(this.options) } else { this.$more.remove() } this.options.onAfterPageLoad($items) }, this)) }, this) } /* Public */ Infinite.prototype.destroy = function() { if (this.waypoint) { this.waypoint.destroy() } } Infinite.defaults = { container: 'auto', items: '.infinite-item', more: '.infinite-more-link', offset: 'bottom-in-view', loadingClass: 'infinite-loading', onBeforePageLoad: $.noop, onAfterPageLoad: $.noop } Waypoint.Infinite = Infinite }()) ; |