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 相关文章推荐
弹出窗口并且此窗口带有半透明的遮罩层效果
Mar 13 Javascript
JavaScript缓冲运动实现方法(2则示例)
Jan 08 Javascript
AngularJS中指令的四种基本形式实例分析
Nov 22 Javascript
Angular JS 生成动态二维码的方法
Feb 23 Javascript
Ext JS 实现建议词模糊动态搜索功能
May 13 Javascript
Angular利用trackBy提升性能的方法
Jan 26 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
May 30 Javascript
详解VUE前端按钮权限控制
Apr 26 Javascript
详解Vue 换肤方案验证
Aug 28 Javascript
JS实现简单日历特效
Jan 03 Javascript
JS正则表达式验证密码强度
Mar 18 Javascript
vue 封装面包屑组件教程
Nov 16 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的正则处理函数总结分析
2008/06/20 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
PHP中CheckBox多选框上传失败的代码写法
2017/02/13 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
jQuery TextBox自动完成条
2009/07/22 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
2013/08/02 Javascript
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
js跨域问题浅析及解决方法优缺点对比
2014/11/08 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
php输出全部gb2312编码内的汉字方法
2017/03/04 Javascript
JavaScript适配器模式详解
2017/10/19 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
Javascript通过控制类名更改样式
2019/05/24 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
原生JS实现天气预报
2020/06/16 Javascript
python实现获取序列中最小的几个元素
2014/09/25 Python
Python脚本实现网卡流量监控
2015/02/14 Python
Python爬虫工程师面试问题总结
2018/03/22 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
简单了解Python生成器是什么
2019/07/02 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
CSS3条纹背景制作的实战攻略
2016/05/31 HTML / CSS
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
校庆标语集锦
2014/06/25 职场文书
食品委托检验协议书范本
2014/09/12 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
武夷山导游词
2015/02/03 职场文书
因工资原因离职的辞职信范文
2015/05/12 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
Ajax实现异步加载数据
2021/11/17 Javascript
python 判断字符串当中是否包含字符(str.contain)
2022/06/01 Python