>  기사  >  웹 프론트엔드  >  기사에서는 vue2가 댐핑을 사용하여 풀다운 로딩 기능을 구현하는 방법을 자세히 설명합니다.

기사에서는 vue2가 댐핑을 사용하여 풀다운 로딩 기능을 구현하는 방법을 자세히 설명합니다.

藏色散人
藏色散人앞으로
2023-02-20 12:07:561641검색

이 글은 vue2에 대한 관련 지식을 제공합니다. vue2에서 감쇠 풀다운 로딩 기능이 어떻게 구현되는지에 대해 주로 설명합니다. 관심 있는 친구들이 함께 살펴보시면 좋습니다. 도움이됩니다.

기사에서는 vue2가 댐핑을 사용하여 풀다운 로딩 기능을 구현하는 방법을 자세히 설명합니다.

vue에서 트리거된 이벤트는 바인딩되어야 합니다.

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

코드 조각은 세 가지 콜백 함수를 사용합니다.

  • touchstart: 손가락이 화면을 터치하는 순간

  • touchmove: 손가락이 켜져 있는 시점 Moving on the screen

  • touchend: 손가락이 화면을 떠날 때

paddingTop에서 볼 수 있듯이 컨테이너 거리 상단의 padding을 조절하여 드롭다운 효과를 구현합니다. 그래서 우리의 재조정은 위의 세 가지 콜백 함수를 통해 chatScrollTop의 값을 결정하는 것입니다.

chatScoollTop이라는 이름에서 알 수 있듯이 채팅 상자 컨테이너에서 풀다운 새로 고침이 사용됩니다.

다음 변수를 사용해야 합니다.

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

세 가지 콜백 함수는 세 단계에 해당하며 핵심 코드도 다음과 같습니다.

1부: 현재 컨테이너 상단까지의 거리를 초기화하고, 현재 슬라이딩 상태인지 여부를 초기화하고, 현재 스크롤 막대의 세로 좌표를 가져옵니다.

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

2부: 현재 손가락의 현재 거리와 화면을 터치하는 순간의 세로좌표 차이를 기준으로 컨테이너와 상단 사이의 거리를 결정합니다. 하지만 항상 미끄러지지는 못하기 때문에 0 -> 80 분위기를 줍니다. 슬라이딩을 더욱 재미있게 만들기 위해 슬라이딩 거리 비율을 조정하는 단계 값이 추가되었습니다. 소위 거리 비율은 손가락이 처음부터 멀어질수록 용량이 슬라이딩하는 거리가 짧아진다는 것을 의미합니다. 댐핑과 같은 효과를 얻을 수 있습니다.

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
  }
}

3부: 손가락을 뗀 후 위에서부터 일정 거리를 주어 로딩 스크롤바를 추가합니다.

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

추천 학습: "vue.js 비디오 튜토리얼"

위 내용은 기사에서는 vue2가 댐핑을 사용하여 풀다운 로딩 기능을 구현하는 방법을 자세히 설명합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.im에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제