Infinite Scroll

Infinite Scroll

Qua bài viết này Wonderkids xin chia sẻ với các bạn thông tin và kiến thức về Infinity scrolling hot nhất hiện nay được bình chọn bởi người dùng

Video Infinity scrolling

Module loaders

Webpack & Browserify

Install Infinite Scroll with npm or Yarn.

You can then require(‘infinite-scroll’).

// main.js const InfiniteScroll = require(‘infinite-scroll’); let infScroll = new InfiniteScroll( ‘.container’, { // options… });

Compile your JS with Webpack or Browserify.

To use Infinite Scroll as a jQuery plugin, you need to call jQuery Bridget.

// main.js const $ = require(‘jquery’); const jQueryBridget = require(‘jquery-bridget’); const InfiniteScroll = require(‘infinite-scroll’); // make Infinite Scroll a jQuery plugin jQueryBridget( ‘infiniteScroll’, InfiniteScroll, $ ); // now you can use $().infiniteScroll() $(‘.container’).infiniteScroll({…});

When installed with a package manager, Infinite Scroll does not include imagesLoaded, which is required to use outlayer. You will need to install and require imagesLoaded separately.

// main.js const Masonry = require(‘masonry-layout’); const InfiniteScroll = require(‘infinite-scroll’); const imagesLoaded = require(‘imagesloaded’); // init Masonry let msnry = new Masonry( ‘.container’, {…}); // make imagesLoaded available for InfiniteScroll InfiniteScroll.imagesLoaded = imagesLoaded; // now you can use outlayer option let infScroll = new InfiniteScroll( ‘.container’, { // options… outlayer: msnry, });

Loading JSON

Xem thêm: Giải SBT Toán 9 trang 20, 21 Tập 1: Bài 9: Căn bậc ba – Tailieu.com

Here is one example of how to use Infinite Scroll to load JSON data and append content. We’ll use the Unsplash API to load pages of photos.

Xem thêm  Tranh tô màu cho bé 5 tuổi - Thủ Thuật Phần Mềm

let $container = $(‘.container’).infiniteScroll({ path: function() { return ‘https://api.unsplash.com/photos?client_id=…&page=’ + this.pageIndex; }, // load page as JSON responseBody: ‘json’, // disable history history: false, }); $container.on( ‘load.infiniteScroll’, function( event, body ) { // body is JSON, put that data into template let itemsHTML = template.compile( body ); // convert to jQuery object let $items = $( itemsHTML ); // append items $container.append( $items ); });

Edit this demo or vanilla JS demo on CodePen

See additional demos:

  • Loading JSON with Masonry
  • Loading JSON with Masonry, vanilla JS

Button behaviors

Click button to start loading on scroll

Scroll 2 pages, then load with button

Loading URLs from loaded pages

You can use Infinite Scroll to load the next article page by updating the next URL from the loaded page. For example, the current URL is /news/alpha, and its next link /news/beta; and when you load /news/beta, its next link is /news/gamma.

To do so, you can use a nextURL variable and update it on load, then set path to a function to return nextURL.

let nextURL; function updateNextURL( doc ) { nextURL = $( doc ).find(‘.pagination__next’).attr(‘href’); } // get initial nextURL updateNextURL( document ); // init Infinite Scroll let $container = $(‘.container’).infiniteScroll({ // use function to set custom URLs path: function() { return nextURL; }, }); // update nextURL on page load $container.on( ‘load.infiniteScroll’, function( event, body ) { updateNextURL( body ); });

Loading animations

Feel free to use these loading animations within .infinite-scroll-request status element.

Google Analytics

Xem thêm: Tổng hợp kiến thức và giải đáp bài 51 trang 30 sgk toán 9 tập 1

Use Infinite Scroll events to track pageviews with Google Analytics.

Xem thêm  Dàn ý tả người hàng xóm (3 mẫu) - BNC.Edu.vn

With history option enabled, use the history event.

$container.on( ‘history.infiniteScroll’, function() { ga( ‘set’, ‘page’, location.pathname ); ga( ‘send’, ‘pageview’ ); });

With history option disabled, use the append or load event.

// link used to get absolute path, beginning with / let link = document.createElement(‘a’); $container.on( ‘append.infiniteScroll’, function( event, response, path ) { link.href = path; ga( ‘set’, ‘page’, link.pathname ); ga( ‘send’, ‘pageview’ ); });

Browser support

Infinite Scroll v4 supports Chrome 60+, Edge 79+, Firefox 55+, Safari 11+.

For IE10 and Android 4 support, try Infinite Scroll v3.

Upgrading from v3

Infinite Scroll v4 is mostly backwards compatible with v3.

Xem thêm: Cấu trúc so sánh hơn của Far – StudyTiengAnh

The one breaking change is that Infinite Scroll v4 removed responseType option in favor of responseBody. This change effects loading JSON in particular. To load JSON with Infinite Scroll v4, set responseBody: ‘json’ in your options. Then the body argument in the load event will be JSON.

New features

  • Uses fetch API to make requests
  • loadNextPage returns a Promise
  • Set headers and fetch options with fetchOptions
  • 10% smaller filesize
  • Internet Explorer support dropped

Issues

Reduced test cases

Creating a reduced test case is the best way to debug problems and report issues. Read CSS Tricks on why they’re so great.

Create a reduced test case for Infinite Scroll by forking any one of the CodePen demos from these docs.

  • A reduced test case clearly demonstrates the bug or issue.
  • It contains the bare minimum HTML, CSS, and JavaScript required to demonstrate the bug.
  • A link to your production site is not a reduced test case.
Xem thêm  ĐẠI TỪ CHỈ ĐỊNH (DEMONSTRATIVE PRONOUNS) LÀ GÌ? CÁCH

Creating a reduced test case is the best way to get your issue addressed. They help you point out the problem. They help us debug the problem. They help others understand the problem.

Submitting issues

Report issues on GitHub. Make sure to include a reduced test case. Without a reduced test case, your issue may be closed.

Feature requests

Help us select new features by looking over requested features on the GitHub issue tracker and adding your +1 reaction to features you’d like to see added.

Bản quyền nội dung thuộc wonderkidsmontessori.edu.vn

Bài viết liên quan

Tri Thức Cộng Đồng chuyên viết luận văn thạc sĩ tiếng Anh
Học Viện PMS – Đơn vị đào tạo 5S-Kaizen mang tính thực tiễn cao
Cách chỉnh độ rộng của dòng và cột trong word
Cách chỉnh độ rộng của dòng và cột trong word
Từ điển Thành ngữ Tiếng Việt – em ngã, chị nâng là gì?
Từ điển Thành ngữ Tiếng Việt – em ngã, chị nâng là gì?
Vật Lí 8 Bài 20: Nguyên tử, phân tử chuyển động hay đứng yên?
Vật Lí 8 Bài 20: Nguyên tử, phân tử chuyển động hay đứng yên?
Bảng chữ cái Tiếng Thái – Gia sư Tâm Tài Đức
Bảng chữ cái Tiếng Thái – Gia sư Tâm Tài Đức
Bộc trực là gì? 6 biểu hiện của người có tính bộc trực – CareerLink
Bộc trực là gì? 6 biểu hiện của người có tính bộc trực – CareerLink
Danh sách các trường THCS ở Hà Nội nên cho con học
Danh sách các trường THCS ở Hà Nội nên cho con học