返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue2实现带有阻尼下拉加载的功能
  • 605
分享到

vue2实现带有阻尼下拉加载的功能

vue2阻尼下拉加载vue 下拉加载 2023-02-16 12:02:44 605人浏览 泡泡鱼
摘要

目录在Vue中 需要绑定触发的事件需要使用的变量在vue中 需要绑定触发的事件 <div id="testchatBox" class="chatWrap" :s

在vue中 需要绑定触发的事件

<div
  id="testchatBox"
  class="chatWrap"
  :style="{paddingTop: chatScroollTop + 'px'}"
  @touchstart="touchStart" 
  @touchmove="touchMove"
  @touchend="touchEnd">
</div>

代码片段使用到了三个回调函数:

  • touchstart: 手指触摸到屏幕的那一刻的时候
  • touchmove: 手指在屏幕上移动的时候
  • touchend: 手指离开屏幕的时候

paddingTop可以看出,我们是通过控制这个容器距离的顶部的padding来实现下拉的效果。所以说我们的重调就是通过上面的三个回调函数来确定chatScroollTop的值。

通过chatScroollTop 这个命名就可以知道,我们这个下拉刷新是用在聊天框容器当中.

需要使用的变量

我们需要使用这些变量:

data() {
  return {
    chatScroollTop: 0, // 容器距离顶部的距离 
    isMove: false, // 是否处于touchmove状态
    startY: 0, // 当前手指在屏幕中的y轴值
    pageScrollTop: 0, // 滚动条当前的纵坐标
  }
}

三个回调函数对应三个阶段,而我们核心代码也分为三个部分:

第一部分:初始化当前容器的到顶部的距离,以及初始化当前是否处于滑动的状态,并获取当前滚动条的纵坐标。

touchStart(e) {
  // e代表该事件对象,e.targetTouches[0].pageY可以拿到手指按下的 y轴点
  this.startY = e.targetTouches[0].pageY
  // 开启下拉刷新状态
  this.isMove = false
  this.pageScrollTop = document.documentElement &amp;&amp; document.documentElement.scrollTop
}

第二部分:根据当前手指当前距离触摸屏幕时刻的纵坐标差来确定容器和顶部的距离。但是由于不能一直的滑动,所以给了一个0 -> 80的氛围。为了让滑动更加的有趣,添加了一个step步进值来调整滑动的距离比例,所谓的距离比例就是手指距离一开始的距离越远,那么容量跟着滑动的距离就越短。实现一个类似阻尼的效果。

touchMove(e) {
  // 这个 touchMove,只要页面在动都会发生的,所以 touching就起作用了
  // 获取移动的距离
  let diff = e.targetTouches[0].pageY - this.startY
  let step = 60
  if (diff > 0 && diff < 80 && this.pageScrollTop === 0) {
     step++ // 越来越大
     this.chatScroollTop += (diff / (step * 0.1)) // 越向下给人的阻力感越大
     this.isMove = true
  }
}

第三部分:手指松开之后,给一个距离顶部的距离是为了添加加载滚动条。


  touchEnd() {
    if(this.isMove) {
      this.chatScroollTop = 40
      this.downCallback() // api拉取数据
    }
  }
  async downCallback() {
    try {
       // 拿数据 
    } catch() {} 
    finall{
      this.chatScrollTop = 0
    }
  }

以上就是vue2实现带有阻尼下拉加载的功能的详细内容,更多关于vue2阻尼下拉加载的功能的资料请关注编程网其它相关文章!

--结束END--

本文标题: vue2实现带有阻尼下拉加载的功能

本文链接: https://lsjlt.com/news/196380.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue2实现带有阻尼下拉加载的功能
    目录在vue中 需要绑定触发的事件需要使用的变量在vue中 需要绑定触发的事件 <div id="testchatBox" class="chatWrap" :s...
    99+
    2023-02-16
    vue2阻尼下拉加载 vue 下拉加载
  • vue2怎么实现带有阻尼下拉加载功能
    这篇“vue2怎么实现带有阻尼下拉加载功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue2怎么实现带有阻尼下拉加载功能...
    99+
    2023-07-05
  • 一文详解vue2如何实现带有阻尼下拉加载功能
    本篇文章给大家带来了关于vue2的相关知识,其中主要跟大家聊一聊带有阻尼下拉加载的功能是怎么在vue2中实现的,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。在vue中,需要绑定触发的事件<div id="testc...
    99+
    2023-05-14
    Vue2
  • 基于vue2如何实现上拉加载功能
    这篇文章主要为大家展示了“基于vue2如何实现上拉加载功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“基于vue2如何实现上拉加载功能”这篇文章吧。具体内容如...
    99+
    2024-04-02
  • MUI如何实现上拉刷新/下拉加载功能
    小编给大家分享一下MUI如何实现上拉刷新/下拉加载功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!新闻信息列表必备的功能,支持...
    99+
    2024-04-02
  • vue.js怎么实现拉加载以及下拉刷新功能
    本篇内容主要讲解“vue.js怎么实现拉加载以及下拉刷新功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue.js怎么实现拉加载以及下拉刷新功能”吧!上拉加...
    99+
    2024-04-02
  • uniapp怎么实现下拉刷新和上拉加载功能
    随着移动端开发的不断升级,开发者们对于移动应用的需求也越来越高。而在很多移动应用中,下拉刷新和上拉加载更多是必不可少的功能之一,为了提高用户体验,许多移动应用都会加入这两个功能。在这里,我们将介绍如何在uniapp中实现下拉刷新和上拉加载更...
    99+
    2023-05-14
  • Android ListView实现上拉加载更多和下拉刷新功能
    本文实例为大家介绍了Android ListView下拉刷新功能的实现方法和功能,供大家参考,具体内容如下 1、ListView优化方式 界面缓存:ViewHolder+con...
    99+
    2022-06-06
    listview Android
  • Vue uni-app框架实现上拉加载下拉刷新功能
    目录实现上拉加载更多优化实现下拉刷新实现上拉加载更多 打开项目根目录中的pages.json配置文件,为subPackages分包中的商品goods_list页面配置上拉触底的距离:...
    99+
    2024-04-02
  • Vue vant-ui框架实现上拉加载下拉刷新功能
    目录知识点速记基本用法下拉刷新代码实现1.页面布局2.样式3.方法下拉刷新效果: 知识点速记 基本用法 List通过loading和finished两个变量控制加载状态,当组件滚动...
    99+
    2024-04-02
  • Android实现上拉加载更多以及下拉刷新功能(ListView)
    首先为大家介绍Andorid5.0原生下拉刷新简单实现。 先上效果图; 相对于上一个19.1.0版本中的横条效果好看了很多。使用起来也很简单。 <FrameLayo...
    99+
    2022-06-06
    listview Android
  • Flutter listview如何实现下拉刷新上拉加载更多功能
    目录下拉刷新 RefreshIndicator 上拉加载更多 总结:下拉刷新 在Flutter中系统已经为我们提供了google material design的刷新功能 , 样式...
    99+
    2024-04-02
  • Android如何通过XListView实现上拉加载下拉刷新功能
    小编给大家分享一下Android如何通过XListView实现上拉加载下拉刷新功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下## 导入XListVIew第三方库文件。通过LinkedList将刷新...
    99+
    2023-05-30
  • Android中怎么利用ListView实现下拉加载功能
    Android中怎么利用ListView实现下拉加载功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。MyListView.Javapublic class&nb...
    99+
    2023-05-30
    listview android
  • Android自定义view实现阻尼效果的加载动画
    效果: 需要知识: 1. 二次贝塞尔曲线 2. 动画知识 3. 基础自定义view知识 先来解释下什么叫阻尼运动 阻尼振动是指,由于振动系统受到摩擦和介质阻力或其他能耗而使振...
    99+
    2022-06-06
    view 动画 Android
  • mui如何实现上拉加载功能
    这篇文章给大家分享的是有关mui如何实现上拉加载功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。最近在做移动端的项目,用到了mui的上拉加载,整理如下:1、需要引入的css、j...
    99+
    2024-04-02
  • Android RecyclerView 上拉加载更多及下拉刷新功能的实现方法
    RecyclerView 已经出来很久了,但是在项目中之前都使用的是ListView,最近新的项目上了都大量的使用了RecycleView.尤其是瀑布流的下拉刷新,网上吧啦吧啦...
    99+
    2022-06-06
    方法 recyclerview Android
  • Android自定义listview布局实现上拉加载下拉刷新功能
    listview实现上拉加载以及下拉刷新的方式有很多。下面是我写的一种自定义的布局,复用性也比较的强。首先就是继承的listview的自定义view。   ...
    99+
    2022-06-06
    listview Android
  • Android ListView实现上拉加载下拉刷新和滑动删除功能
    最近项目需要用到可以滑动删除并且带有上拉加载下拉刷新的Listview,查阅了一些资料,大多都是在SwipeMenuListView的基础上去添加头部和底部View,来扩展上拉...
    99+
    2022-06-06
    listview Android
  • vue 使用mescroll.js框架实现下拉加载和上拉刷新功能
    以下是代码是在项目中抽取出来的,都是实现下拉刷新上拉加载的要点。 注:以下不是用vue-cli写的,用vue-cli的请绕过,抱歉~ 1、mescroll 的页面的初始化 initM...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作