6 jQuery無限滾動演示
鑰匙要點
- >本文介紹了六個有關如何實現無限滾動的演示,該功能允許連續滾動內容,而無需單擊分頁鏈接,改善用戶體驗和參與度。 演示包括通過網格,博客文章,圖像,數字,電子表格以及無限滾動和分頁的組合進行無限滾動。每個演示都用jQuery編寫,儘管它們可以適用於香草JS,有些可以使用jQuery插件。
- > 可以根據項目的需求來定制無限滾動的實現,例如調整加載消息,處理錯誤,處理動態內容,在沒有更多內容時停止以及通過優化內容來提高性能。
- 1。無限滾動和網格
>用法 - jQuery
<span><span><span><div</span> class<span>="grid"</span>></span> </span> <span><span><span><div</span> class<span>="grid-item grid-item-2"</span>></span> </span> <span><span><span><p</span>></span>content<span><span></p</span>></span> </span> <span><span><span></div</span>></span> </span> … <span><span><span></div</span>></span> </span> <span><!-- The next page which content will be loaded when scrolled --> </span><span><span><span><nav</span> id<span>="pagination"</span>></span> </span> <span><span><span><p</span>></span><span><span><a</span> href<span>="page-2.html"</span>></span>Page 2<span><span></a</span>></span><span><span></p</span>></span> </span><span><span><span></nav</span>></span></span>
2。無限滾動通過博客文章
<span>$(document).ready(function() { </span> <span>var grid = $('.grid'); </span> grid<span>.masonry({ </span> <span>itemSelector: '.grid-item', </span> <span>columnWidth: 200 </span> <span>}); </span> grid<span>.infinitescroll({ </span> <span>// Pagination element that will be hidden </span> <span>navSelector: '#pagination', </span> <span>// Next page link </span> <span>nextSelector: '#pagination p a', </span> <span>// Selector of items to retrieve </span> <span>itemSelector: '.grid-item', </span> <span>// Loading message </span> <span>loadingText: 'Loading new items…' </span> <span>}, </span> <span>// Function called once the elements are retrieved </span> <span>function(new_elts) { </span> <span>var elts = $(new_elts).css('opacity', 0); </span> elts<span>.animate({opacity: 1}); </span> grid<span>.masonry('appended', elts); </span> <span>}); </span><span>});</span>
此演示不使用任何插件或庫來處理無限的滾動功能。每次用戶到達頁面的結尾時,它都會加載一個新帖子,該帖子由PHP腳本生成,該帖子呼應相應的HTML代碼。該演示永遠不會達到內容的末尾,但是您可以通過例如在沒有更多帖子顯示的情況下呼應一個空字符串來實現這一目標。我們本著Twitter的精神在頁面末端顯示一個加載圖像。
>請注意,在下面的實時演示中,新帖子是由JavaScript函數生成的,因為我們無法在Codepen中使用PHP腳本。 >請參閱codepen上的sitepoint(@sitepoint)瀏覽博客文章的筆>用法 - html
>用法 - jQuery
<span><span><span><div</span> class<span>="grid"</span>></span> </span> <span><span><span><div</span> class<span>="grid-item grid-item-2"</span>></span> </span> <span><span><span><p</span>></span>content<span><span></p</span>></span> </span> <span><span><span></div</span>></span> </span> … <span><span><span></div</span>></span> </span> <span><!-- The next page which content will be loaded when scrolled --> </span><span><span><span><nav</span> id<span>="pagination"</span>></span> </span> <span><span><span><p</span>></span><span><span><a</span> href<span>="page-2.html"</span>></span>Page 2<span><span></a</span>></span><span><span></p</span>></span> </span><span><span><span></nav</span>></span></span>
3。無限滾動圖像
<span>$(document).ready(function() { </span> <span>var grid = $('.grid'); </span> grid<span>.masonry({ </span> <span>itemSelector: '.grid-item', </span> <span>columnWidth: 200 </span> <span>}); </span> grid<span>.infinitescroll({ </span> <span>// Pagination element that will be hidden </span> <span>navSelector: '#pagination', </span> <span>// Next page link </span> <span>nextSelector: '#pagination p a', </span> <span>// Selector of items to retrieve </span> <span>itemSelector: '.grid-item', </span> <span>// Loading message </span> <span>loadingText: 'Loading new items…' </span> <span>}, </span> <span>// Function called once the elements are retrieved </span> <span>function(new_elts) { </span> <span>var elts = $(new_elts).css('opacity', 0); </span> elts<span>.animate({opacity: 1}); </span> grid<span>.masonry('appended', elts); </span> <span>}); </span><span>});</span>
此演示在無限捲軸上的圖像中加載,並且永遠不會達到末端。它使用jQuery無盡的捲軸插件,可以自定義以從屏幕底部觸發X數量的像素數。演示克隆相同的圖像並將它們插入列表的末尾等等,但是可以自定義腳本以很容易地加載來自不同源的圖像。
>請參閱codepen上的sitepoint(@sitepoint)瀏覽圖像的鋼筆。>用法 - html
>用法 - jQuery
<span><span><span><ul</span> id<span>="posts"</span>></span> </span> <span><span><span><li</span>></span> </span> <span><span><span><article</span>></span>content<span><span></article</span>></span> </span> <span><span><span></li</span>></span> </span> … <span><span><span></ul</span>></span> </span> <span><span><span><p</span> id<span>="loading"</span>></span> </span> <span><span><span><img</span> src<span>="images/loading.gif"</span> alt<span>="Loading…"</span> /></span> </span><span><span><span></p</span>></span></span>
4。數字
的無限列表<span>$(document).ready(function() { </span> <span>var win = $(window); </span> <span>// Each time the user scrolls </span> win<span>.scroll(function() { </span> <span>// End of the document reached? </span> <span>if ($(document).height() - win.height() == win.scrollTop()) { </span> <span>$('#loading').show(); </span> $<span>.ajax({ </span> <span>url: 'get-post.php', </span> <span>dataType: 'html', </span> <span>success: function(html) { </span> <span>$('#posts').append(html); </span> <span>$('#loading').hide(); </span> <span>} </span> <span>}); </span> <span>} </span> <span>}); </span><span>});</span>
>用法 - html
>用法 - jQuery
<span><span><span><ul</span> id<span>="images"</span>></span> </span> <span><span><span><li</span>></span> </span> <span><span><span><a</span> href<span>="https://www.pexels.com/photo/mist-misty-fog-foggy-7919/"</span>></span> </span> <span><span><span><img</span> src<span>="https://pexels.imgix.net/photos/7919/pexels-photo.jpg?fit=crop&w=640&h=480"</span> alt<span>=""</span> /></span> </span> <span><span><span></a</span>></span> </span> <span><span><span></li</span>></span> </span> … <span><span><span></ul</span>></span></span>
5。無限電子表格
<span>$(document).ready(function() { </span> <span>$(window).endlessScroll({ </span> <span>inflowPixels: 300, </span> <span>callback: function() { </span> <span>var $img = $('#images li:nth-last-child(5)').clone(); </span> <span>$('#images').append($img); </span> <span>} </span> <span>}); </span><span>});</span>
>
請注意,所有單元格都是空的。 CSS計數器生成了行索引,因此我們不需要自己計算它們。>
>請參閱codepen上的sitepoint(@sitepoint)的鋼筆無限電子表格。>用法 - html
>用法 - jQuery
<span><span><span><ul</span> id<span>="numbers"</span>></span> </span> <span><span><span><li</span>></span>1<span><span></li</span>></span> </span> <span><span><span><li</span>></span>2<span><span></li</span>></span> </span> <span><span><span><li</span>></span>3<span><span></li</span>></span> </span> <span><span><span><li</span>></span>4<span><span></li</span>></span> </span> <span><span><span><li</span>></span>5<span><span></li</span>></span> </span> … <span><span><span></ul</span>></span></span>
6。無限滾動分頁
<span>$(document).ready(function() { </span> <span>var offset = $('#numbers li').length; </span> <span>$('#numbers').endlessScroll({ </span> <span>fireOnce: false, </span> <span>fireDelay: false, </span> <span>loader: '', </span> <span>insertAfter: '#numbers li:last', </span> <span>content: function(i) { </span> <span>return '<li>' + (i + offset) + '</li>'; </span> <span>} </span> <span>}); </span><span>});</span>
>
這兩個事實給了蒂姆·塞維安(Tim Severien)一個想法:如果我們將無限滾動和分頁結合在一起,以利用這兩種方法怎麼辦?結果是最後一個演示。
>向用戶顯示了初始頁面。當用戶向下滾動並到達頁面底部時,將自動加載一個新頁面。在這裡,我們享受無限滾動的簡單性。但是新事物來自屏幕底部的列表。
>最初隱藏,此列表已填充,每次加載新頁面時,此頁面的數量。這樣,如果用戶想檢索第二頁,他們可以通過擊中相應的數字而在任何努力中。
請參閱codepen上的sitepoint(@sitepoint)的鋼筆無限滾動分頁。>用法 - html
<span><span><span><div</span> class<span>="grid"</span>></span> </span> <span><span><span><div</span> class<span>="grid-item grid-item-2"</span>></span> </span> <span><span><span><p</span>></span>content<span><span></p</span>></span> </span> <span><span><span></div</span>></span> </span> … <span><span><span></div</span>></span> </span> <span><!-- The next page which content will be loaded when scrolled --> </span><span><span><span><nav</span> id<span>="pagination"</span>></span> </span> <span><span><span><p</span>></span><span><span><a</span> href<span>="page-2.html"</span>></span>Page 2<span><span></a</span>></span><span><span></p</span>></span> </span><span><span><span></nav</span>></span></span>
請注意,此代碼使用ES6,但是您可以輕鬆地將其轉換為ES5。
結論
<span>$(document).ready(function() { </span> <span>var grid = $('.grid'); </span> grid<span>.masonry({ </span> <span>itemSelector: '.grid-item', </span> <span>columnWidth: 200 </span> <span>}); </span> grid<span>.infinitescroll({ </span> <span>// Pagination element that will be hidden </span> <span>navSelector: '#pagination', </span> <span>// Next page link </span> <span>nextSelector: '#pagination p a', </span> <span>// Selector of items to retrieve </span> <span>itemSelector: '.grid-item', </span> <span>// Loading message </span> <span>loadingText: 'Loading new items…' </span> <span>}, </span> <span>// Function called once the elements are retrieved </span> <span>function(new_elts) { </span> <span>var elts = $(new_elts).css('opacity', 0); </span> elts<span>.animate({opacity: 1}); </span> grid<span>.masonry('appended', elts); </span> <span>}); </span><span>});</span>
>我們研究了實施無限滾動的六個不同示例。無論您要構建什麼,都應該能夠使用其中一種技術來實現所需的結果。與往常一樣,我們很想听聽您的想法:您是否使用其中一種插件或技術來建造任何酷的東西?您是否有您認為應該提到的最喜歡的插件?在評論中讓我們知道!
>>常見問題(常見問題解答)
>如何在我的網站上實現jQuery無限滾動? >在您的網站上實施jQuery infinite滾動涉及幾個步驟。首先,您需要在HTML文件中包括jQuery庫和無限滾動插件。然後,您需要初始化插件並指定要無限加載的內容。您可以使用ItemSelector選項並將其指向內容的類或ID。最後,您需要使用路徑選項指定下一組內容的路徑。這可以是返回URL的URL或功能。 >使用JQuery Infinite滾動有什麼好處?它通過允許用戶瀏覽內容而無需單擊分頁鏈接來改善用戶體驗。它還減少了服務器的負載,因為僅在需要時加載內容。此外,由於用戶更有可能繼續滾動和探索您的內容。 ,您可以在jQuery無限滾動中自定義加載消息。該插件提供了一個名為“加載”的選項,該選項允許您指定內容加載時要顯示的文本和圖像。您也可以使用CSS來樣式加載消息。>
>如何使用錯誤回調來處理jQuery無限滾動中的錯誤?當插件無法加載內容時,該功能被調用。您可以使用此回調顯示錯誤消息或採取其他操作。
我可以使用動態內容的jQuery Infinite滾動?該插件提供了一種稱為infscr('bind')的方法,您可以調用該方法將無限的滾動功能綁定到新加載的內容。
我如何在沒有更多內容的情況下停止jQuery Infinite滾動?
>當不再使用INFSCR(“銷毀”)方法的內容時,您可以停止jQuery無限滾動。這將刪除無限的滾動功能並防止進一步的內容被加載。 我可以與其他jQuery插件一起使用jQuery Infinite滾動嗎?>
>如何測試jQuery Infinite Scrolling? 您可以測試jQuery Infinite scrolling通過向下滾動您的頁面並檢查是否已加載新內容。您還可以使用瀏覽器開發人員工具來監視網絡請求並檢查是否正確並正確加載了新內容。我可以在移動設備上使用jQuery infinite滾動嗎?
是的,是的,jquery infinite scrolling在移動設備上工作。但是,您需要確保您的網站響應迅速,並且無限的滾動功能在不同的屏幕尺寸上效果很好。
>>我如何提高jQuery Infinite scrolling的性能? jQuery無限滾動的性能通過優化您的內容。這包括減少圖像的大小,縮小CSS和JavaScript文件,並使用服務器端分頁一次限制加載的內容量。您也可以在視圖中使用懶負載來加載圖像。
>以上是6 jQuery無限滾動演示的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。1)C 用于解析JavaScript源码并生成抽象语法树。2)C 负责生成和执行字节码。3)C 实现JIT编译器,在运行时优化和编译热点代码,显著提高JavaScript的执行效率。

Python更適合數據科學和自動化,JavaScript更適合前端和全棧開發。 1.Python在數據科學和機器學習中表現出色,使用NumPy、Pandas等庫進行數據處理和建模。 2.Python在自動化和腳本編寫方面簡潔高效。 3.JavaScript在前端開發中不可或缺,用於構建動態網頁和單頁面應用。 4.JavaScript通過Node.js在後端開發中發揮作用,支持全棧開發。
