AngularJS基于ngInfiniteScroll實(shí)現(xiàn)下拉滾動(dòng)加載的方法
本文實(shí)例講述了AngularJS基于ngInfiniteScroll實(shí)現(xiàn)下拉滾動(dòng)加載的方法。分享給大家供大家參考,具體如下:
1.分頁(yè)加載數(shù)據(jù)的基礎(chǔ)上,如何通過滾動(dòng)加載,實(shí)現(xiàn)分頁(yè)加載數(shù)據(jù)的效果,github上,針對(duì)AngularJS,有一款不錯(cuò)的插件,地址為:https://github.com/sroze/ngInfiniteScroll
2.下面來(lái)看官方給出的文檔
(1)使用樣例:
<ANY infinite-scroll='{expression}' [infinite-scroll-distance='{number}'] [infinite-scroll-disabled='{boolean}'] [infinite-scroll-immediate-check='{boolean}'] [infinite-scroll-listen-for-event='{string}']> </ANY>
解釋各個(gè)屬性(指令的含義)
①infinite-scroll - {expression} 當(dāng)滾動(dòng)到瀏覽器底部時(shí),所執(zhí)行的函數(shù)或者表達(dá)式,通常是函數(shù)形式。
②infinite-scroll-distance (optional) - {number} 表達(dá)式或者數(shù)字,如果是一個(gè)數(shù)字,表示滾動(dòng)條距離瀏覽器底部多少遠(yuǎn)時(shí),執(zhí)行①中里面的函數(shù)。如果將這個(gè)值設(shè)置為2,對(duì)于1000px高度的元素,當(dāng)元素底部距離瀏覽器窗口底部距離在2000px像素以內(nèi),沒滾動(dòng)一次,都會(huì)執(zhí)行一次①里面的函數(shù)。(這個(gè)值默認(rèn)是0,即當(dāng)元素滾動(dòng)到元素底部達(dá)到瀏覽器窗口(滾動(dòng)區(qū)域)底部時(shí),執(zhí)行滾動(dòng)區(qū)域里面的函數(shù)。
③infinite-scroll-disabled (optional) - {boolean} 一個(gè)布爾值,用于標(biāo)志滾動(dòng)表達(dá)函數(shù)能否執(zhí)行,如果值為true,表示滾動(dòng)函數(shù)不能被執(zhí)行。這個(gè)屬性,通常用于暫?;蛘咄V?jié)L動(dòng)。比如當(dāng)我們?cè)贏JAX請(qǐng)求數(shù)據(jù)的過程中,移動(dòng)了滾動(dòng)條,這時(shí)就需要設(shè)置這個(gè)屬性,禁止?jié)L動(dòng)函數(shù)的執(zhí)行。
④infinite-scroll-immediate-check (optional) - {boolean} 一個(gè)布爾值,用于標(biāo)志指令在初始化頁(yè)面時(shí),是否為初始執(zhí)行一次(即使這種情況下,沒有初始滾動(dòng)),默認(rèn)值為true,表示初始會(huì)執(zhí)行一次這①里面的函數(shù)。
⑤infinite-scroll-listen-for-event (optional) - {string} 一個(gè)事件,當(dāng)接受到這個(gè)事件時(shí)候,會(huì)重新執(zhí)行滾動(dòng)函數(shù),重新定位滾動(dòng)位置,比如到元素被修改時(shí),會(huì)重新執(zhí)行滾動(dòng)函數(shù)。
(2)本地的DEMO
官網(wǎng)給出了本地運(yùn)行,實(shí)現(xiàn)滾動(dòng)加載的例子:
HTML代碼:
<div ng-app='myApp' ng-controller='DemoController'> <div infinite-scroll='loadMore()' infinite-scroll-distance='2'> <img ng-repeat='image in images' ng-src='http://placehold.it/225x250&text={{image}}'> </div> </div>
JS代碼:
var myApp = angular.module('myApp', ['infinite-scroll']); myApp.controller('DemoController', function($scope) { $scope.images = [1, 2, 3, 4, 5, 6, 7, 8]; $scope.loadMore = function() { var last = $scope.images[$scope.images.length - 1]; for(var i = 1; i <= 8; i++) { $scope.images.push(last + i); } }; });
更多關(guān)于AngularJS相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《AngularJS入門與進(jìn)階教程》及《AngularJS MVC架構(gòu)總結(jié)》
希望本文所述對(duì)大家AngularJS程序設(shè)計(jì)有所幫助。
相關(guān)文章
Angular2 自定義validators的實(shí)現(xiàn)方法
angular 當(dāng)需要form表單需要驗(yàn)證時(shí),angular自帶了許多校驗(yàn)器,但是很多時(shí)候自帶的無(wú)法滿足業(yè)務(wù)需求,這時(shí)候就需要自定義的校驗(yàn)器,下面通過本文給大家分享Angular2 自定義validators的實(shí)現(xiàn)方法,需要的朋友參考下吧2017-07-07Angular在一個(gè)頁(yè)面中使用兩個(gè)ng-app的方法
這篇文章主要介紹了Angular在一個(gè)頁(yè)面中使用兩個(gè)ng-app的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02Angular2使用Guard和Resolve進(jìn)行驗(yàn)證和權(quán)限控制
本篇文章主要介紹了Angular2使用Guard和Resolve進(jìn)行驗(yàn)證和權(quán)限控制,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-04-04Angularjs渲染的 using 指令的星級(jí)評(píng)分系統(tǒng)示例
本篇文章主要介紹了Angularjs渲染的 using 指令的星級(jí)評(píng)分系統(tǒng)示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-11-11Angular 2 利用Router事件和Title實(shí)現(xiàn)動(dòng)態(tài)頁(yè)面標(biāo)題的方法
本篇文章主要介紹了Angular 2 利用Router事件和Title實(shí)現(xiàn)動(dòng)態(tài)頁(yè)面標(biāo)題的方法,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08AngularJs驗(yàn)證重復(fù)密碼的方法(兩種)
本文給大家介紹angularjs驗(yàn)證重復(fù)密碼的兩種方法,每種方法都有各自的優(yōu)缺點(diǎn),大家可以根據(jù)需要選擇一種方法,具體內(nèi)容詳情大家通過本文詳細(xì)了解下吧2016-11-11angular2路由之routerLinkActive指令【推薦】
這篇文章主要介紹了angular2路由之routerLinkActive指令的相關(guān)資料,需要的朋友可以參考下2018-05-05AngularJS 模塊詳解及簡(jiǎn)單實(shí)例
本文主要介紹AngularJS 模塊,這里幫大家整理了相關(guān)資料,詳細(xì)介紹了AngularJS的基礎(chǔ)知識(shí),有需要的朋友可以參考下2016-07-07angular 組件通信的幾種實(shí)現(xiàn)方式
這篇文章主要介紹了angular 組件通信的幾種實(shí)現(xiàn)方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-07-07