小程序Page設置錨點定位

微信小程序中使用 wx.pageScrollTo();進行頁面錨點定位,一定要將根目錄設置為滑動的根據(jù)。

也就是 page 要設置樣式為 overflow-y: auto;指定他的高度。
在其中,設置一個容器 home 設置id。
在添加一個內容容器 container 設置類名。
設置多個錨點,添加錨點類型 如: node0, node1, node2 等。
然后通過點擊事件傳遞要跳轉的錨點信息。

通過wx.createSelectorQuery().select(類名).boundingClientRect(res => {}),, 獲取錨點中的數(shù)據(jù)。
在通過wx.createSelectorQuery().select(“#home”).boundingClientRect(res => {}), 獲取設置的跟錨點home。
在這里不能直接獲取跟元素 page ,只能獲取當前組件的根元素,也就是home。
在通過wx.pageScrollTo({ selector: “.container”, scrollTop: 滑動的距離 });就可以滑動到錨點。

上代碼: (通過 vue3.0 + ts + vite 創(chuàng)建的uni-app 項目)

page {
    width: 100%;
    height: 100vh;
    display: block;
    overflow-y: auto;  /* 重點 */
    overflow-x: hidden;
    box-sizing: border-box;
}
<view id="home">
    <view class="container">
        <!-- 內容 錨點點擊事件 -->
        <view v-for="(item, index) in data" :key="index" @click="jump(item, index)"></view>
        <!-- 錨點 -->
        <view class="node0"></view>
        <view class="node1"></view>
        <view class="node2"></view>
    </view>
</view>
let data = ["1","2","3","4"],

const jump = (row: any, index: number): void => {
    let className = String('.node' + index);
    uni.createSelectorQuery().select(className).boundingClientRect((con: any) => { // 獲取點擊要跳轉的錨點信息
        uni.createSelectorQuery().select("#home").boundingClientRect((res: any) => { // 獲取根元素要滑動的元素
            uni.pageScrollTo({
                selector: "#home",  // 滑動的元素
                // duration: 1500, //過渡時間
                scrollTop: con.top - res.top, //到達距離頂部的top值
            });
        }).exec();
    }).exec();
});

原文傳送門

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 每天的學習記錄,可能有的地方寫的不對,因為剛學,以后發(fā)現(xiàn)錯的話會回來改掉整體流程 https://develope...
    有點健忘閱讀 5,026評論 0 7
  • 轉載鏈接 注:本文轉載知乎上的回答 作者:初雪 鏈接:https://www.zhihu.com/question...
    pengshuangta閱讀 29,305評論 9 295
  • 以下將展示微信小程序之表單組件editor源碼官方組件能力,組件樣式僅供參考,開發(fā)者可根據(jù)自身需求定義組件樣式,具...
    MLC061閱讀 1,770評論 0 0
  • [TOC] 小程序的執(zhí)行流程 注冊一個小程序(小程序的生命周期) 注冊App時,一般會做什么判斷小程序的進入場景監(jiān)...
    duangdong閱讀 2,803評論 0 7
  • 在小程序開發(fā)中,我們經(jīng)常會遇到滾動列表查看的需求,那么使用錨點定位來實現(xiàn)可以達到交互體驗更加友好的效果,我們看下項...
    月滿軒尼詩_閱讀 22,002評論 3 12

友情鏈接更多精彩內容