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 相关文章推荐
Web 前端设计模式--Dom重构 提高显示性能
Oct 22 Javascript
jQuery遍历Table应用示例
Apr 09 Javascript
JavaScript的9种继承实现方式归纳
May 18 Javascript
JavaScript严格模式详解
Nov 18 Javascript
jQuery DateTimePicker 日期和时间插件示例
Jan 22 Javascript
详解JS中的attribute属性
Apr 25 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
Jul 05 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
Mar 27 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
Sep 14 Javascript
AJAX在JQuery中的应用详解
Jan 30 jQuery
Javascript通过控制类名更改样式
May 24 Javascript
javascript获取select值的方法完整实例
Jun 20 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写入数据库类代码分享
2011/07/26 PHP
PHP常用开发函数解析之数组篇[未完结]
2012/07/30 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
非常不错的功能强大代码简单的管理菜单美化版
2008/07/09 Javascript
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
微信小程序中的swiper组件详解
2017/04/14 Javascript
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
2017/06/11 jQuery
JS实现将二维数组转为json格式字符串操作示例
2018/07/12 Javascript
利用React Router4实现的服务端直出渲染(SSR)
2019/01/07 Javascript
elementUI多选框反选的实现代码
2019/04/03 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
web.py获取上传文件名的正确方法
2014/08/26 Python
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
教大家使用Python SqlAlchemy
2016/02/12 Python
简单讲解Python中的数字类型及基本的数学计算
2016/03/11 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
python安装twisted的问题解析
2018/08/21 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
Python同时迭代多个序列的方法
2020/07/28 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
CSS3混合模式mix-blend-mode/background-blend-mode简介
2018/03/15 HTML / CSS
餐饮管理自我介绍信
2014/01/15 职场文书
财务会计毕业生个人求职信
2014/02/03 职场文书
聚美优品陈欧广告词
2014/03/14 职场文书
公司人力资源管理制度
2015/08/05 职场文书
SpringBoot整合Minio文件存储
2022/04/03 Java/Android