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 CSS修改学习第五章 给“上传”添加样式
Feb 19 Javascript
jquery 关于event.target使用的几点说明介绍
Apr 26 Javascript
简单常用的幻灯片播放实现代码
Sep 25 Javascript
jQuery CSS()方法改变现有的CSS样式表
Sep 09 Javascript
Jquery解析Json格式数据过程代码
Oct 17 Javascript
js获取UserControl内容为拼html时提供方便
Nov 02 Javascript
coffeescript使用的方式汇总
Aug 05 Javascript
Web程序员必备的7个JavaScript函数
Jun 14 Javascript
微信小程序 swiper组件轮播图详解及实例
Nov 16 Javascript
js实现日历与定时器
Feb 22 Javascript
实战node静态文件服务器的示例代码
Mar 08 Javascript
Nuxt.js实战和配置详解
Aug 05 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 启动时报错的简单解决方法
2014/01/27 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
php实现生成验证码实例分享
2016/04/10 PHP
PHP使用curl制作简易百度搜索
2016/11/03 PHP
PHP连接MySQL数据库操作代码实例解析
2020/07/11 PHP
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
2015/08/07 Javascript
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
2017/02/06 Javascript
详解js的异步编程技术的方法
2017/02/09 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
详解jquery插件jquery.viewport.js学习使用方法
2017/09/08 jQuery
Vue实现动态创建和删除数据的方法
2018/03/17 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
2019/01/06 Javascript
nodejs实现获取本地文件夹下图片信息功能示例
2019/06/22 NodeJs
python中reduce()函数的使用方法示例
2017/09/29 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
python挖矿算力测试程序详解
2019/07/03 Python
python SVD压缩图像的实现代码
2019/11/05 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
通过Turtle库在Python中绘制一个鼠年福鼠
2020/02/03 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
Python3实现个位数字和十位数字对调, 其乘积不变
2020/05/03 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
2020/07/20 Python
超级实用的8个Python列表技巧
2020/08/24 Python
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
入党自我评价范文
2014/02/02 职场文书
优秀毕业生推荐信范文
2014/03/07 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
MySQL kill不掉线程的原因
2021/05/07 MySQL
python之基数排序的实现
2021/07/26 Python
OpenCV实现常见的四种图像几何变换
2022/04/01 Python