AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法


Posted in Javascript onDecember 14, 2016

本文实例讲述了AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法。分享给大家供大家参考,具体如下:

1.分页加载数据的基础上,如何通过滚动加载,实现分页加载数据的效果,github上,针对AngularJS,有一款不错的插件,地址为:https://github.com/sroze/ngInfiniteScroll

2.下面来看官方给出的文档

(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>

解释各个属性(指令的含义)

①infinite-scroll - {expression} 当滚动到浏览器底部时,所执行的函数或者表达式,通常是函数形式。

②infinite-scroll-distance (optional) - {number} 表达式或者数字,如果是一个数字,表示滚动条距离浏览器底部多少远时,执行①中里面的函数。如果将这个值设置为2,对于1000px高度的元素,当元素底部距离浏览器窗口底部距离在2000px像素以内,没滚动一次,都会执行一次①里面的函数。(这个值默认是0,即当元素滚动到元素底部达到浏览器窗口(滚动区域)底部时,执行滚动区域里面的函数。

③infinite-scroll-disabled (optional) - {boolean} 一个布尔值,用于标志滚动表达函数能否执行,如果值为true,表示滚动函数不能被执行。这个属性,通常用于暂停或者停止滚动。比如当我们在AJAX请求数据的过程中,移动了滚动条,这时就需要设置这个属性,禁止滚动函数的执行。

④infinite-scroll-immediate-check (optional) - {boolean} 一个布尔值,用于标志指令在初始化页面时,是否为初始执行一次(即使这种情况下,没有初始滚动),默认值为true,表示初始会执行一次这①里面的函数。

⑤infinite-scroll-listen-for-event (optional) - {string} 一个事件,当接受到这个事件时候,会重新执行滚动函数,重新定位滚动位置,比如到元素被修改时,会重新执行滚动函数。

(2)本地的DEMO

官网给出了本地运行,实现滚动加载的例子:

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);
  }
 };
});

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
使用js对select动态添加和删除OPTION示例代码
Aug 12 Javascript
与Math.pow 相反的函数使用介绍
Aug 04 Javascript
js文件包含的几种方式介绍
Sep 28 Javascript
jquery使用经验小结
May 20 Javascript
原生javascript实现匀速运动动画效果
Feb 26 Javascript
如何让一个json文件显示在表格里【实现代码】
May 09 Javascript
基于jQuery实现的打字机效果
Jan 16 Javascript
轻松理解JavaScript闭包
Mar 14 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
Apr 19 Javascript
vue移动端微信授权登录插件封装的实例
Aug 28 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
Aug 20 Javascript
JS指定音频audio在某个时间点进行播放
Nov 28 Javascript
bootstrap modal弹出框的垂直居中
Dec 14 #Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
Dec 14 #Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
Dec 14 #Javascript
bootstrap模态框实现拖拽效果
Dec 14 #Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
Dec 14 #Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
Dec 14 #Javascript
Bootstrap实现圆角、圆形头像和响应式图片
Dec 14 #Javascript
You might like
php知道与问问的采集插件代码
2010/10/12 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
不错的JS中变量相关的细节分析
2007/08/13 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
input禁止键盘及中文输入,但可以点击
2014/02/13 Javascript
js微信分享API
2020/10/11 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
ES6中Math对象的部分扩展
2017/02/20 Javascript
Bootstrap模态框插件使用详解
2017/05/11 Javascript
Angularjs实现上传图片预览功能
2017/09/01 Javascript
Vue实现双向绑定的原理以及响应式数据的方法
2018/07/02 Javascript
微信小程序登陆注册功能的实现代码
2019/12/10 Javascript
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
详解Vue 的异常处理机制
2020/11/30 Vue.js
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
3种python调用其他脚本的方法
2020/01/06 Python
Python : turtle色彩控制实例详解
2020/01/19 Python
Django Admin后台添加数据库视图过程解析
2020/04/01 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
Django之腾讯云短信的实现
2020/06/12 Python
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
SQL中where和having的区别
2012/06/17 面试题
高中生物教学反思
2014/02/05 职场文书
2014离婚协议书范文
2014/09/10 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
2016幼儿园教师年度考核评语
2015/12/01 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
PHP设计模式(观察者模式)
2021/07/07 PHP