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 加号(+)运算符号
Dec 06 Javascript
js关于命名空间的函数实例
Feb 05 Javascript
JavaScript截断字符串的方法
Jul 15 Javascript
jQuery.prop() 使用详解
Jul 19 Javascript
jquery实现的横向二级导航效果代码
Aug 26 Javascript
jQuery实现验证年龄简单思路
Feb 24 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
Apr 29 Javascript
vue.js入门教程之基础语法小结
Sep 01 Javascript
谈谈对JavaScript原生拖放的深入理解
Sep 20 Javascript
vue-cli 组件的导入与使用教程详解
Apr 11 Javascript
微信小程序自定义toast组件的方法详解【含动画】
May 11 Javascript
layui使用数据表格实现购物车功能
Jul 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
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
js中style.display=&quot;&quot;无效的解决方法
2014/10/30 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
javascript实现动态导入js与css等静态资源文件的方法
2015/07/25 Javascript
详解Javascript模板引擎mustache.js
2016/01/20 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
基于javascript制作微博发布栏效果
2016/04/04 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
Vue工程模板文件 webpack打包配置方法
2017/12/26 Javascript
vue用BMap百度地图实现即时搜索功能
2019/09/26 Javascript
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
[06:16]第十四期-国士无双绝地翻盘之撼地神牛
2014/06/24 DOTA
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
Python创建系统目录的方法
2015/03/11 Python
python使用urllib2实现发送带cookie的请求
2015/04/28 Python
Python六大开源框架对比
2015/10/19 Python
总结Python编程中函数的使用要点
2016/03/20 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
Under Armour安德玛德国官网:美国高端运动科技品牌
2019/03/09 全球购物
澳大利亚最大的护发和护肤品购物网站:RY
2019/12/26 全球购物
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
资深地理教师自我评价
2013/09/21 职场文书
策划助理岗位职责
2013/11/18 职场文书
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
预备党员政审材料
2014/02/04 职场文书
战友聚会策划方案
2014/06/13 职场文书
党的群众路线教育实践活动对照检查材料范文
2014/09/24 职场文书
民主生活会意见
2015/06/05 职场文书
国庆节新闻稿
2015/07/17 职场文书
运动会5000米加油稿
2015/07/21 职场文书