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 相关文章推荐
超级强大的表单验证
Jun 26 Javascript
js、jquery图片动画、动态切换示例代码
Jun 03 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
Sep 06 Javascript
jQuery学习笔记之Ajax用法实例详解
Dec 01 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
May 25 Javascript
原生JS实现的放大镜效果实例代码
Oct 15 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
Apr 13 Javascript
three.js实现3D影院的原理的代码分析
Dec 18 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
Jan 18 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
Sep 27 Javascript
实例讲解vue源码架构
Jan 24 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
Apr 17 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字符串中插入子字符串方法总结
2016/05/06 PHP
php 使用redis锁限制并发访问类示例
2016/11/02 PHP
实例分析PHP将字符串转换成数字的方法
2019/01/27 PHP
javascript设置金额样式转换保留两位小数示例代码
2013/12/04 Javascript
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
jQuery插件datalist实现很好看的input下拉列表
2015/07/14 Javascript
JavaScript多线程详解
2015/08/12 Javascript
JS实现状态栏跑马灯文字效果代码
2015/10/24 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
Bootstrap每天必学之按钮
2015/11/26 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
2016/06/13 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
vue.js中父组件调用子组件的内部方法示例
2017/10/22 Javascript
webpack的CSS加载器的使用
2018/09/11 Javascript
弱类型语言javascript中 a,b 的运算实例小结
2019/08/07 Javascript
Vue实现boradcast和dispatch的示例
2020/11/13 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
详解使用Python处理文件目录的相关方法
2015/10/16 Python
Python切换pip安装源的方法详解
2016/11/18 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
2017/01/12 Python
对Python中Iterator和Iterable的区别详解
2018/10/18 Python
实例讲解Python中浮点型的基本内容
2019/02/11 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
业务员岗位职责范本
2013/12/15 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
党员“四风”问题批评与自我批评思想汇报
2014/10/06 职场文书
美术教师求职信范文
2015/03/20 职场文书
当幸福来敲门观后感
2015/06/01 职场文书
html5表单的required属性使用
2021/07/07 HTML / CSS
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL
一起来学习Python的元组和列表
2022/03/13 Python
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技