通过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. The Google File System(论文阅读笔记)

    概述 ​ GFS:一个可扩展的分布式文件系统,用于大型分布式数据相关应用,TB级的数据,成千上万的并发请求. 设计概览 假设 组件的失效比异常更加常见 多数的文件修改操作是追加数据而不是重写原来的数据 ...

  2. 12-21 Request庫

  3. PHP convert_uuencode() 函数

    实例 编码字符串: <?php$str = "Hello world!";echo convert_uuencode($str);?>高佣联盟 www.cgewang. ...

  4. [NOI2012]随机数生成器【矩阵快速幂】

    NOI2012 随机数生成器 题目描述 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法 ...

  5. 【SDOI2012】Longge 的问题 题解(欧拉函数)

    前言:还算比较简单的数学题,我这种数学蒟蒻也会做QAQ. --------------- 题意:求$\sum\limits_{i=1}^n gcd(i,n)$的值. 设$gcd(i,n)=d$,即$d ...

  6. 简单认识JAVA内存划分

    Java的内存划分为五个部分 那么又是哪五个部分呢?跟着我往下看! 介绍: 每个程序运行都需要内存空间,所以Java也不例外:而Java把从计算机中申请的这一块内存又进行了划分!而所在目的是为了让程序 ...

  7. Ternary weight networks

    Introduction 这两天看了一下这篇文章,我就这里分享一下,不过我还是只记录一下跟别人blog上没有,或者自己的想法(ps: 因为有时候翻blog时候发现每篇都一样还是挺烦的= =) .为了不 ...

  8. 最火热的极速开发框架Spring Boot

    Spring Boot是Spring家族中的一个全新的框架,它用来简化Spring应用程序的创建和开发过程,也可以说Spring Boot能简化我们之前采用Spring mvc + Spring + ...

  9. java类的定义与使用

    一 引用数据类型 1.引用数据类型的分类 我们可以把类的类型为两种: 第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包 含了很多的方法与属性,可供我们使用. ...

  10. Deep Learning-Based Document Modeling for Personality Detection from Text 阅读笔记

    文章目录 代码地址 1. 摘要 2. 方法综述 2.1 输入信息预处理 2.2 文档层面的格式特征提取 2.3 数据过滤 2.4 单词层面上的特征提取 2.5分类 3. 分类网络结构 3.1 步骤 3 ...