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 相关文章推荐
理清apply(),call()的区别和关系
Aug 14 Javascript
也说JavaScript中String类的replace函数
Sep 22 Javascript
使用JavaScript实现连续滚动字幕效果的方法
Jul 07 Javascript
基于jquery实现表格无刷新分页
Jan 07 Javascript
js学习之----深入理解闭包
Nov 21 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
Mar 10 Javascript
fullPage.js和CSS3实现全屏滚动效果
May 05 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
Mar 13 jQuery
javascript实现手动点赞效果
Apr 09 Javascript
微信小程序实现上传图片裁剪图片过程解析
Aug 22 Javascript
JavaScript中继承原理与用法实例入门
May 09 Javascript
学前端,css与javascript重难点浅析
Jun 11 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网页后退不再出现过期
2007/03/08 PHP
php格式文件打开的四种方法
2018/02/24 PHP
php 策略模式原理与应用深入理解
2019/09/25 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
2019/09/29 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
如何通过PHP实现Des加密算法代码实例
2020/05/09 PHP
关于实现代码语法标亮 dp.SyntaxHighlighter
2007/02/02 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
2016/08/11 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
JavaScript获取短信验证码(周期性)
2016/12/29 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
JS写谷歌浏览器chrome的外挂实例
2018/01/11 Javascript
JavaScript轮播停留效果的实现思路
2018/05/24 Javascript
Vue动态加载异步组件的方法
2018/11/21 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
2019/05/15 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
python3制作捧腹网段子页爬虫
2017/02/12 Python
python使用fcntl模块实现程序加锁功能示例
2017/06/23 Python
不知道这5种下划线的含义,你就不算真的会Python!
2018/10/09 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
2020/06/18 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
韩都衣舍天猫官方旗舰店:天猫女装销售总冠军
2017/10/10 全球购物
英国最大最好的无人机商店:Drones Direct
2019/07/12 全球购物
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
关于VPN
2012/06/10 面试题
生产车间实习自我鉴定
2013/09/23 职场文书
大学生素质拓展活动方案
2014/02/11 职场文书
关于安全的演讲稿
2014/05/09 职场文书
2015年党总支工作总结
2015/05/25 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python