欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

微信小程序返回到頂部功能的簡單實現(xiàn)

 更新時間:2022年11月18日 12:13:31   作者:前端若水  
在做微信小程序開發(fā)時,遇到一個問題,要如何實現(xiàn)返回頂部的功能,下面這篇文章主要給大家介紹了微信小程序返回到頂部功能的簡單實現(xiàn),文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

業(yè)務(wù)需求

今天公司的PM給我提了個需求,微信小程序需要做一個返回頂部的功能,返回頂部的按鈕也是需要滑動到頁面指定內(nèi)容顯示過后才出現(xiàn)的,微信小程序中沒有a標簽,我通過查看小程序文檔結(jié)合思路將此功能實現(xiàn)

頁面結(jié)構(gòu)

我們一個頁面中有一個nav類名的返回頂部元素,和一個text類名盒子用于作為顯示返回頂部元素的界點

<view class="page">
<!-- 返回頂部按鈕 -->
  <view class="nav" bindtap="backTop" wx:if="{{isTop}}">返回頂部</view>
  <!-- 內(nèi)容 -->
  <view class="text" id="pos">
    展示頂部返回按鈕
  </view>
</view>

樣式

頁面大盒子我們使用背景顏色漸變色給一個高度用于做出滾動的效果,然后將返回頂部的按鈕和頁面中的內(nèi)容設(shè)置下樣式

/* 頁面大盒子樣式 */
.page {
  width: 100%;
  height: 1500px;
  background: linear-gradient(to bottom, red, blue, #fff, yellow);
  padding-top: 700rpx;
}
/* 返回頂部按鈕樣式 */
.nav {
  position: fixed;
  right: 10rpx;
  bottom: 50rpx;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 70rpx;
  height: 100rpx;
  padding: 10rpx;
  background: rgb(216, 148, 148);
  border-radius: 10rpx;
}
/* 內(nèi)容樣式 */
.text {
  margin-top: 500rpx;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
}

實現(xiàn)邏輯

我們通過頁面加載獲取到頁面內(nèi)容距離頂部的高度,然后將此高度設(shè)置為指定滑動距離,然后再通過onPageScroll方法去監(jiān)聽頁面滑動控制返回頂部變量的改變,以此控制返回頂部按鈕的顯示與隱藏,然后在給返回頂部按鈕綁定一個backTop方法,點擊返回頂部按鈕就通過微信小程序的API控制頁面直接返回頂部

Page({
  data: {
    //滑動的指定距離,用于作為返回頂部標記改變的界點
    top: 0,
    // 返回頂部標記,頂部標記為true則返回頂部按鈕顯示,頂部標記為false,則返回頂部按鈕不展示
    isTop: false
  },
  /**
   * @function 返回頂部執(zhí)行方法
   */
  backTop() {
    //這是微信小程序給我們提供的頁面滾動API方法
    wx.pageScrollTo({
      // 頁面滾動的距離
      scrollTop: 0,
      // 滾動動畫執(zhí)行時間,我們這里就讓他執(zhí)行100毫秒
      duration: 100
    })
  },

  /**
   * 
   * @function 監(jiān)聽頁面滑動
   */
  onPageScroll(e) {
    // 使用ES6的方式頁面滾動的event對象中的滾動距離scrollTop變量解構(gòu)出來
    let {
      scrollTop
    } = e;
    // 將滑動的指定距離變量和是否顯示返回頂部按鈕標記也解構(gòu)出來
    let {
      top,
      isTop
    } = this.data;
    // 判斷當前滾動的距離是否大于等于我們設(shè)定的滑動的指定距離且當前返回頂部按鈕標記為false
    if (scrollTop >= top && !isTop) {
      // 進入則表示滑動達到了指定位置,我們將返回頂部標記改為true將返回頂部按鈕進行展示出來
      this.setData({
        isTop: true
      })
    } else {
      // 如果上述條件則表示要么是未達到執(zhí)行位置或者已經(jīng)返回頂部標記為true了,所以我們這里需要在判斷一下,當前的滾動距離是否小于我們設(shè)定的指定滑動距離和當前返回頂部標記是否為true,這樣我們就只判斷當前滑動到指定位置和滑動小于指定位置,如果大于滑動指定位置我們就不做處理
      if (scrollTop <= top && isTop) {
        // 如果小于滑動指定距離,我們就將返回頂部按鈕顯示標記改為false
        this.setData({
          isTop: false
        })
      }
    }
  },
  /**
   * @function 獲取元素
   *  @return {number} id
   */

  query(id, fn) {
    // 通過微信的方式進行獲取元素對象進行操作,接受值為id,我們用回調(diào)函數(shù)進行處理
    let query = wx.createSelectorQuery();
    query.select(id).boundingClientRect()
    query.selectViewport().scrollOffset()
    query.exec(fn)
  },

  onLoad() {
    // 我們將當前頁面中的內(nèi)容id傳遞進去,通過內(nèi)容距離頂部的高度,設(shè)置滑動的指定距離
    this.query("#pos", (e) => {
      let {
        top
      } = e[0];
      this.setData({
        top
      })
    })
  }
})

總結(jié)

到此這篇關(guān)于微信小程序返回到頂部功能的文章就介紹到這了,更多相關(guān)微信小程序返回到頂部內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js實現(xiàn)移動端圖片滑塊驗證功能

    js實現(xiàn)移動端圖片滑塊驗證功能

    這篇文章主要為大家詳細介紹了js實現(xiàn)移動端圖片滑塊驗證功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • JavaScript中的

    JavaScript中的"=、==、==="區(qū)別講解

    今天小編就為大家分享一篇關(guān)于JavaScript中的"=、==、==="區(qū)別講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 輕松理解Javascript變量的相關(guān)問題

    輕松理解Javascript變量的相關(guān)問題

    這篇文章主要給大家介紹了關(guān)于Javascript變量的相關(guān)問題,文中給出了詳細的介紹和示例代碼,相信對大家的理解和學習具有一定的參考借鑒價值,有需要的朋友們下面來一起看看吧。
    2017-01-01
  • JS函數(shù)動態(tài)傳遞參數(shù)的方法分析【基于arguments對象】

    JS函數(shù)動態(tài)傳遞參數(shù)的方法分析【基于arguments對象】

    這篇文章主要介紹了JS函數(shù)動態(tài)傳遞參數(shù)的方法,結(jié)合實例形式分析了javascript通過arguments對象獲取傳遞參數(shù)的相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06
  • Ajax提交與傳統(tǒng)表單提交的區(qū)別說明

    Ajax提交與傳統(tǒng)表單提交的區(qū)別說明

    本篇文章主要是對Ajax提交與傳統(tǒng)表單提交的區(qū)別進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • 淺析Ajax語法

    淺析Ajax語法

    本文主要介紹了原生JS中Ajax的實現(xiàn)原理,XMLHttpRequest及promise的概念和流程。需要的朋友可以看下
    2016-12-12
  • JavaScript的垃圾回收機制與內(nèi)存管理

    JavaScript的垃圾回收機制與內(nèi)存管理

    這篇文章主要介紹了JavaScript的垃圾回收機制與內(nèi)存管理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • js 彈出框只彈一次(二次修改之后的)

    js 彈出框只彈一次(二次修改之后的)

    彈出框只彈一次,看到網(wǎng)上也就寫的很多,可以直接使用的沒有幾個,下面與大家分享個修改之后的代碼,需要的朋友可以參考下
    2013-11-11
  • javascript實現(xiàn)tabs選項卡切換效果(自寫原生js)

    javascript實現(xiàn)tabs選項卡切換效果(自寫原生js)

    常用的頁面效果有彈出層效果,無縫滾動效果,選項卡切換效果,接下來與大家分享一款自己用原生javascript寫的選項卡切換效果,感興趣的朋友可以參考下哈
    2013-03-03
  • [js高手之路]原型式繼承與寄生式繼承詳解

    [js高手之路]原型式繼承與寄生式繼承詳解

    下面小編就為大家?guī)硪黄猍js高手之路]原型式繼承與寄生式繼承詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08

最新評論