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 相关文章推荐
关于javascript中的parseInt使用技巧
Sep 03 Javascript
JQuery 表单中textarea字数限制实现代码
Dec 07 Javascript
JavaScript格式化数字的函数代码
Nov 30 Javascript
jQuery验证Checkbox是否选中的代码 推荐
Sep 04 Javascript
jQuery中Ajax的load方法详解
Jan 14 Javascript
jQuery实现根据滚动条位置加载相应内容功能
Jul 18 Javascript
详解Require.js与Sea.js的区别
Aug 05 Javascript
mockjs+vue页面直接展示数据的方法
Dec 19 Javascript
Vue源码学习之关于对Array的数据侦听实现
Apr 23 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
Jul 10 jQuery
js HTML DOM EventListener功能与用法实例分析
Apr 27 Javascript
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
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中,文件上传
2006/12/06 PHP
php解压文件代码实现php在线解压
2014/02/13 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
Javascript &amp; DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
JavaScript语法着色引擎(demo及打包文件下载)
2007/06/13 Javascript
Js 订制自己的AlertBox(信息提示框)
2009/01/09 Javascript
使用javascript过滤html的字符串(注释标记法)
2013/07/08 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
JavaScript数组操作详解
2017/02/04 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
js实现3D旋转效果
2020/08/18 Javascript
js实现有趣的倒计时效果
2021/01/19 Javascript
[01:32]2016国际邀请赛中国区预选赛CDEC战队教练采访
2016/06/26 DOTA
python在windows下实现备份程序实例
2014/07/04 Python
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
python实现简单socket通信的方法
2016/04/19 Python
Unicode和Python的中文处理
2017/03/19 Python
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
python五子棋游戏的设计与实现
2019/06/18 Python
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
印度电子产品购物网站:Vijay Sales
2021/02/16 全球购物
七年级历史教学反思
2014/02/05 职场文书
汇源肾宝广告词
2014/03/20 职场文书
教书育人演讲稿
2014/09/11 职场文书
银行员工犯错检讨书
2014/09/16 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
2019军训心得体会
2019/06/27 职场文书
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android