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 相关文章推荐
JavaScript中的this,call,apply使用及区别详解
Jan 29 Javascript
js 自带的 map() 方法全面了解
Aug 16 Javascript
jQuery ajaxForm()的应用
Oct 14 Javascript
Bootstrap Table使用方法解析
Oct 19 Javascript
JS中cookie的使用及缺点讲解
May 13 Javascript
JavaScript中Object值合并方法详解
Dec 22 Javascript
vue-router中的hash和history两种模式的区别
Jul 17 Javascript
angular 表单验证器验证的同时限制输入的实现
Apr 11 Javascript
解决Layui 表格自适应高度的问题
Nov 15 Javascript
js生成1到100的随机数最简单的实现方法
Feb 07 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
May 19 jQuery
如何构建一个Vue插件并生成npm包
Oct 26 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获取MSN好友列表类的实现代码
2013/06/23 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
php通过获取头信息判断图片类型的方法
2015/06/26 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
2015/12/31 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
php微信公众平台开发(三)订阅事件处理
2016/12/06 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
基于jQuery的倒计时插件代码
2011/05/07 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
js中函数调用的两种常用方法使用介绍
2014/07/17 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
AngularJS使用angular-formly进行表单验证
2015/12/27 Javascript
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
如何使用proxy实现一个简单完整的MVVM库的示例代码
2019/09/17 Javascript
[45:56]Ti4正赛第一天 VG vs NEWBEE 3
2014/07/19 DOTA
简单介绍Ruby中的CGI编程
2015/04/10 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
python框架django基础指南
2016/09/08 Python
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
Python中的 is 和 == 以及字符串驻留机制详解
2019/06/28 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
python中如何设置代码自动提示
2020/07/15 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
社会实践心得体会
2014/01/03 职场文书
关于青春的演讲稿800字
2014/08/22 职场文书
Win11安装升级时提示“该电脑必须支持安全启动”
2022/04/19 数码科技
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers