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 相关文章推荐
(function(){})()的用法与优点
Mar 11 Javascript
JQuery下的Live方法和$.browser方法使用代码
Jun 02 Javascript
innerHTML与jquery里的html()区别介绍
Oct 12 Javascript
理解和运用JavaScript的闭包机制
Aug 13 Javascript
JS实现的3D拖拽翻页效果代码
Oct 31 Javascript
js绑定事件和解绑事件
Apr 27 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
May 18 Javascript
深入理解Node中的buffer模块
Jun 03 Javascript
纯js代码生成可搜索选择下拉列表的实例
Jan 11 Javascript
webpack+react+antd脚手架优化的方法
Apr 02 Javascript
Angular PWA使用的Demo示例
Jan 31 Javascript
详解Vue的watch中的immediate与watch是什么意思
Dec 30 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实现评论回复删除功能
2017/05/23 PHP
JS BASE64编码 window.atob(), window.btoa()
2021/03/09 Javascript
Ajax搜索结果页面下方的分页按钮的生成
2012/04/05 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
详解Javascript中的原型OOP
2016/10/12 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
Vue程序调试的方法
2019/06/17 Javascript
js根据后缀判断文件文件类型的代码
2020/05/09 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
[01:22:29]真视界:2019年国际邀请赛总决赛
2020/01/29 DOTA
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
python常见排序算法基础教程
2017/04/13 Python
Tornado高并发处理方法实例代码
2018/01/15 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
Python列表(List)知识点总结
2019/02/18 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
Python实现密码薄文件读写操作
2019/12/16 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
真正了解CSS3背景下的@font face规则
2017/05/04 HTML / CSS
HTML5拖放功能_动力节点Java学院整理
2017/07/13 HTML / CSS
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
大码女装:Ulla Popken
2019/08/06 全球购物
机械设计及其自动化专业推荐信
2013/10/31 职场文书
医学专业五年以上个人求职信
2013/12/03 职场文书
平面网站制作专科生的自我评价分享
2013/12/11 职场文书
大学生写自荐信的技巧
2014/01/08 职场文书
新党章心得体会
2014/09/04 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书
JUnit5常用注解的使用
2021/07/02 Java/Android
Python线程池与GIL全局锁实现抽奖小案例
2022/04/13 Python