Angular中使用better-scroll插件的方法


Posted in Javascript onMarch 27, 2018

better-scroll的使用

由于需要在一个固定的的高度做无限滚动,本来css的overflow-y也可以完成的,奈何安卓不是很流畅,还很生硬,就是用了第三方库better-scroll,配合angular的ng-content。angular的ng-content和vue的插槽很像,里面一些不确定的内容可以通过ng-content投影进去。

安装better-scroll

1: npm install better-scroll --save

2: 安装types npm install better-scroll @types/better-scroll --save

3:在angular-cli里面引入

listscroll组件的编写

根据官方的文档可以看出,better-scroll对dom的结构是有要求的,最外层的wrapper那一层是需要固定高度的,里面那一层content是根据内容的高度来撑起的。

html部分:

<div class="scroll" #scroll>
 <ng-content></ng-content>
</div>

ng-content就是要投影进来的内容

component.ts部分

1: import引入 BScroll

2:在OnInit这个钩子里面来初始化,由于OnInit的时候,ngFor还没执行完毕,所以就加了一个定时器来延迟。

import { Component, OnInit, Input, ElementRef, ViewChild } from '@angular/core';
declare let BScroll;
@Component({
 selector: 'app-listscroll',
 templateUrl: './listscroll.component.html',
 styleUrls: ['./listscroll.component.css']
})
export class ListscrollComponent implements OnInit {

 @ViewChild('scroll') scrollEl: ElementRef;
 @Input()
 private height: number;

 public scroll;
 constructor() { }

 ngOnInit() {
 
  // 设置高度
  this.scrollEl.nativeElement.style.height = `${this.height}px`; 
  
  // 初始化
  setTimeout(() => {
   this.scroll = new BScroll(this.scrollEl.nativeElement, {click: true});
  }, 20);
 }

}

在其他组件里面使用listscroll组件

<app-listscroll [height]="height">
 <ul>
   <li class="item" *ngFor="let item of list; let num = index;">第{{num}}个</li>
 </ul>
</app-listscroll>

总结

这样better-scroll简单的使用就完成,当然better-scroll还有很多功能,可以依赖它做上拉和下拉的加载,做轮播图等等,具体可参考官方的文档。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
为Extjs加加速(javascript加速)
Aug 19 Javascript
JavaScript起点(严格模式深度了解)
Jan 28 Javascript
Javascript执行效率全面总结
Nov 04 Javascript
js使用eval解析json实例与注意事项分享
Jan 18 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
Jun 13 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
Dec 26 Javascript
Vue 过渡(动画)transition组件案例详解
Jan 22 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
Jan 23 Javascript
详解vue2.0组件通信各种情况总结与实例分析
Mar 22 Javascript
bootstrap基本配置_动力节点Java学院整理
Jul 14 Javascript
js实现音乐播放控制条
Sep 09 Javascript
Node对CommonJS的模块规范
Nov 06 Javascript
使用node打造自己的命令行工具方法教程
Mar 26 #Javascript
详解Vue 全局引入bass.scss 处理方案
Mar 26 #Javascript
js构建二叉树进行数值数组的去重与优化详解
Mar 26 #Javascript
红黑树的插入详解及Javascript实现方法示例
Mar 26 #Javascript
js+canvas实现滑动拼图验证码功能
Mar 26 #Javascript
JS从非数组对象转数组的方法小结
Mar 26 #Javascript
深入理解Node module模块
Mar 26 #Javascript
You might like
PHP判断是否为空的几个函数对比
2015/04/21 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
设定php简写功能的方法
2019/11/28 PHP
JS高级拖动技术 setCapture,releaseCapture
2011/07/31 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
禁用JavaScript控制台调试的方法
2014/03/07 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
2018/05/28 Javascript
Node.js实现一个HTTP服务器的方法示例
2019/05/13 Javascript
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
Python中.join()和os.path.join()两个函数的用法详解
2018/06/11 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
python实现贪吃蛇游戏源码
2020/03/21 Python
Python函数参数分类原理详解
2020/05/28 Python
Python基于mediainfo批量重命名图片文件
2020/12/29 Python
基于 HTML5 Canvas实现 的交互式地铁线路图
2018/03/05 HTML / CSS
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
2017/08/18 HTML / CSS
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
财务副总经理工作职责
2013/11/25 职场文书
社区活动邀请函范文
2014/01/29 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
2014年秋季开学寄语
2014/08/02 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
雨中的树观后感
2015/06/03 职场文书
热爱劳动主题班会
2015/08/14 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
Python使用Kubernetes API访问集群
2021/05/30 Python
浅析NIO系列之TCP
2021/06/15 Java/Android
关于python爬虫应用urllib库作用分析
2021/09/04 Python