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 DOM学习第四章 getElementByTagNames
Feb 19 Javascript
js 控制下拉菜单刷新的方法
Mar 03 Javascript
jQuery表单域属性过滤器用法分析
Feb 10 Javascript
使用vue.js制作分页组件
Jun 27 Javascript
用JavaScript实现让浏览器停止载入页面的方法
Jan 19 Javascript
用js屏蔽被http劫持的浮动广告实现方法
Aug 10 Javascript
p5.js实现斐波那契螺旋的示例代码
Mar 22 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
May 16 Javascript
对vue下点击事件传参和不传参的区别详解
Sep 15 Javascript
微信小程序云开发如何使用npm安装依赖
May 18 Javascript
React中获取数据的3种方法及优缺点
Feb 18 Javascript
微信小程序云函数添加数据到数据库的方法
Mar 04 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使用百度ping服务代码实例
2014/06/19 PHP
ThinkPHP中order()使用方法详解
2016/04/19 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
javascript中的一些注意事项 更新中
2010/12/06 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
2012/03/14 Javascript
jquery html动态生成select标签出问题的解决方法
2013/11/20 Javascript
js中用window.open()打开多个窗口的name问题
2014/03/13 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
JS实现仿京东淘宝竖排二级导航
2014/12/08 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
js面向对象编程总结
2017/02/16 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
JS实现轮播图效果
2020/01/11 Javascript
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python break语句详解
2014/03/11 Python
Python getopt模块处理命令行选项实例
2014/05/13 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
python常用排序算法的实现代码
2019/11/08 Python
python+opencv边缘提取与各函数参数解析
2020/03/09 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
小学教师岗位职责
2013/11/25 职场文书
汉语言文学职业规划
2014/02/14 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
学校安全责任书范本
2014/07/23 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
现役军人家属慰问信
2015/03/24 职场文书
人民调解协议书
2016/03/21 职场文书
前端学习——JavaScript原生实现购物车案例
2021/03/31 Javascript
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL