广告
返回顶部
首页 > 资讯 > 精选 >vue2怎么实现带有阻尼下拉加载功能
  • 729
分享到

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

2023-07-05 04:07:02 729人浏览 泡泡鱼
摘要

这篇“Vue2怎么实现带有阻尼下拉加载功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue2怎么实现带有阻尼下拉加载功能

这篇“Vue2怎么实现带有阻尼下拉加载功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue2怎么实现带有阻尼下拉加载功能”文章吧。

在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 && 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怎么实现带有阻尼下拉加载功能”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

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

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue2怎么实现带有阻尼下拉加载功能
    这篇“vue2怎么实现带有阻尼下拉加载功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue2怎么实现带有阻尼下拉加载功能...
    99+
    2023-07-05
  • vue2实现带有阻尼下拉加载的功能
    目录在vue中 需要绑定触发的事件需要使用的变量在vue中 需要绑定触发的事件 <div id="testchatBox" class="chatWrap" :s...
    99+
    2023-02-16
    vue2阻尼下拉加载 vue 下拉加载
  • 一文详解vue2如何实现带有阻尼下拉加载功能
    本篇文章给大家带来了关于vue2的相关知识,其中主要跟大家聊一聊带有阻尼下拉加载的功能是怎么在vue2中实现的,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。在vue中,需要绑定触发的事件<div id="testc...
    99+
    2023-05-14
    Vue2
  • vue.js怎么实现拉加载以及下拉刷新功能
    本篇内容主要讲解“vue.js怎么实现拉加载以及下拉刷新功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue.js怎么实现拉加载以及下拉刷新功能”吧!上拉加...
    99+
    2022-10-19
  • uniapp怎么实现下拉刷新和上拉加载功能
    随着移动端开发的不断升级,开发者们对于移动应用的需求也越来越高。而在很多移动应用中,下拉刷新和上拉加载更多是必不可少的功能之一,为了提高用户体验,许多移动应用都会加入这两个功能。在这里,我们将介绍如何在uniapp中实现下拉刷新和上拉加载更...
    99+
    2023-05-14
  • Android中怎么利用ListView实现下拉加载功能
    Android中怎么利用ListView实现下拉加载功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。MyListView.Javapublic class&nb...
    99+
    2023-05-30
    listview android
  • react native中怎么利用FlatList实现下拉刷新上拉加载功能
    本篇文章为大家展示了react native中怎么利用FlatList实现下拉刷新上拉加载功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。android效果图总体...
    99+
    2022-10-19
  • Flutter中怎么利用listview实现下拉刷新上拉加载更多功能
    这期内容当中小编将会给大家带来有关Flutter中怎么利用listview实现下拉刷新上拉加载更多功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。下拉刷新在Flutter中系统已经为我们提供了googl...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作