通过better-scroll这个插件实现微信好友滚动列表

安装better-scroll

npm i better-scroll

初始化better-scroll
  //better-scroll需要一个div,类名wrapper
  //wrapper下放滚动元素,content,只有wrapper下的第一个元素能够滚动,其他无效,所以其他元素内容都放在content中
 
使用前先引入better-scroll
  let wrapper =  document.querySelector(".wrapper");
  //初始化better-scroll,挂载到组件实例里,方便使用
  //注意:初始化better-scroll时最好在获取数据之后,this.$nextTick(() => {})中执行,否则可能出现无法滚动。 
  this.$scroll = new BScroll(".wrapper");
 
滚动与快速入口

实现一:点击快速入口,组件滚动到指定位置,如点击A,跳转到A的歌手中

首先,需要获取到一个数组  AZList = ["热门","A","B"......"Z"],可通过数据生成也可以写假数据

再获取每一个tab栏,例如 热门这一栏,距离窗口顶部的距离

获取方法:通过ref给每一个tab栏绑定,遍历this.$refs,创建一个数组存放数据,如clientData.push( this.$refs.offsetTop )  (这个用法不标准,自行查看如何再refs上获取offsetTop)

先根据数组生成快速入口。

点击快速入口时,获取该快速入口在数组中为索引值,如A,索引值为1

此时添加一个方法

scroll(index){  //接收一个index , 为 点击快速入口时 获取到的索引值

  //clientData存放的是每一个tab栏距离窗口的距离,比如说是热门距离窗口的距离

  this.$scroll是挂载到组件实例的对象,上面有提到,scrollTo是better-scroll提供的方法,可自行查阅,400是动画时间

  this.$scroll.scrollTo(0,-clientData[index],400)

}

到这就可以实现点击快速入口滚动

实现二:滑动快速入口与组件联动

@touchstart="touchStart"  //手指按下
@touchmove="touchMove"//手指滑动
@touchend = "touchEnd" //手指抬起
1、手指点击touchstart时,通过事件对象e获取到点击的元素
2、事件对象e中有一个属性为touches,touches里面有一个clientY,距离窗口顶部的距离
实现思路:
1、假设 热门 距离窗口顶部的距离为180
2、我们现在点击了快速入口的A,通过事件对象获取到了 A 距离窗口 顶部 的距离 x,那么 A 到 热门 的距离 就等于 length = x - 180
3、每一个快速入口之间的距离 为 20px
4、通过 length / 20 就可以获取到 我们滑动到了哪个位置
5、根据clientData 和 第四步获取到的索引值, 可以获取到滚动距离
5、通过scrollTo就可以实现滑动快速入口,组件也会跟着动的效果

欢迎交流,小白一枚!

better-scroll实现滚动的更多相关文章

  1. DOM盒模型和位置 client offset scroll 和滚动的关系

    DOM盒模型和位置 client offset scroll 和滚动的关系 概览 在dom里面有几个描述盒子位置信息的值, pading border margin width height clie ...

  2. taro scroll tabs 滚动标签 切换

    taro scroll tabs 滚动标签 切换 https://www.cnblogs.com/lml-lml/p/10954069.html https://developers.weixin.q ...

  3. scroll 区域滚动

    网页内都有快速滚动和回弹的效果: overflow: scroll; -webkit-overflow-scrolling: touch;   实际上,Safari用了原生控件来实现,对于有-webk ...

  4. window.scroll原生滚动

    window.scroll({ top: , behavior: 'smooth' }) js原生已经支持模拟滚动的效果啦~~~

  5. Elasticsearch---基于scroll技术滚动搜索大量数据

    如果一次性要查出来比如10万条数据,那么性能会很差,此时一般会采取用scoll滚动查询,一批一批的查,直到所有数据都查询完处理完 使用scoll滚动搜索,可以先搜索一批数据,然后下次再搜索一批数据,以 ...

  6. jQuery scroll(滚动)延迟加载

    延迟加载 $(window).scroll(function(){ var scrollHeight = $(document).height(); //文档高度 var scrollTop = $( ...

  7. Android listView scroll 恢复滚动位置

    相信大家尝试过许多方法恢复滚动位置,本人也找了许多方法,唯有这个方法好用,下面把代码贴出来 声明两个变量 private int mPosition; private int lvChildTop; ...

  8. WPF touch Scroll -触摸滚动

    借鉴地址:http://matthamilton.net/touchscrolling-for-scrollviewer 改造后支持上下和左右鼠标拖动滚动: using System; using S ...

  9. Scroll文字滚动js

    function ScrollImgLeft(){ var speed=50, doc=document, scroll_begin = doc.getElementById("scroll ...

  10. MUI开发APP,scroll组件,运用到区域滚动

    最近在开发APP的过程中,遇到一个问题,就是内容有一个固定的头部和底部.         头部就是我们常用的header了,底部的话,就放置一个button,用来提交页面数据或者进入下一个页面等,效果 ...

随机推荐

  1. Django坑_02

    在创建订单的时候会创建一个对应的日期 查询数据库表的时候,查询年的话可以正常实现 但是如果单独查询某一个月的话,可能会出错 在 Django 中月份可能会使用 Django 中定义的时区 将 项目 s ...

  2. 笨办法学python 第四版 中文pdf高清版|网盘下载内附提取码

    笨办法学 Python是Zed Shaw 编写的一本Python入门书籍.适合对计算机了解不多,没有学过编程,但对编程感兴趣的朋友学习使用.这本书以习题的方式引导读者一步一步学习编 程,从简单的打印一 ...

  3. 京东架构师:日均 5 亿查询量的ElasticSearch架构如何设计?

    作者:张sir  来源:京东技术(id:jingdongjishu) 1. 背景 京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大,造成了订单数 ...

  4. Android 的重要控件 ListView (听说是最难最常用的控件)

    这个打字有点慢了,左手受伤了,不过很幸运,左手小拇指没事(这就可以愉快地使用快捷键啦!),虽然有伤,但还是得坚持总结,不只是为自己,还为未来的你们铺路,希望我写的,对你们有帮助. 提前给自己一个祝福: ...

  5. Unity 入门

  6. 《Spanner: Google’s Globally-Distributed Database》论文总结

    Spanner 总结 说明:本文为论文 <Spanner: Google's Globally-Distributed Database> 的个人理解,难免有理解不到位之处,欢迎交流与指正 ...

  7. 比原链CTO James | Go语言成为区块链主流开发语言的四点理由

    11月24日,比原链CTO James参加了Go中国举办的Gopher Meetup杭州站活动,与来自阿里.网易的技术专家带来Kubernetes.区块链.日志采集.云原生等话题的分享.James向大 ...

  8. 谈谈MySql索引

    刚刚学习完丁奇老师<MySql 实战 45 讲>专栏中的索引部分,图文并茂的风格解开了我之前的许多疑惑,并且学习到许多新的东西,在此做个笔记,方便后续复习.由于 MySql 中存在多种存储 ...

  9. [深度学习] Pytorch学习(二)—— torch.nn 实践:训练分类器(含多GPU训练CPU加载预测的使用方法)

    Learn From: Pytroch 官方Tutorials Pytorch 官方文档 环境:python3.6 CUDA10 pytorch1.3 vscode+jupyter扩展 #%% #%% ...

  10. 37 Reasons why your Neural Network is not working

    37 Reasons why your Neural Network is not working Neural Network Check List 如何使用这个指南 数据问题 检查输入数据 试一下 ...