uniapp实现锚点跳转

Posted huihuihero

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uniapp实现锚点跳转相关的知识,希望对你有一定的参考价值。

将uniapp的uni.createSelectorQuery()方法与uni.pageScrollTo(OBJECT)方法结合使用

更详细用法见官方文档:
uni.createSelectorQuery()方法: https://uniapp.dcloud.io/api/ui/nodes-info?id=createselectorquery
uni.pageScrollTo(OBJECT)方法: https://uniapp.dcloud.io/api/ui/scroll?id=pagescrollto

核心代码

//从当前位置到达目标位置
            uni.createSelectorQuery().select(‘.comment-content‘).boundingClientRect(data=>{//目标位置的节点:类或者id
                  uni.createSelectorQuery().select(".arc-content").boundingClientRect(res=>{//最外层盒子的节点:类或者id
                        uni.pageScrollTo({
                              duration: 100,//过渡时间
                              scrollTop:data.top - res.top  ,//到达距离顶部的top值
                        })
                  }).exec()
            }).exec();

代码示例

<template>
      <view class="arc-content" id="arc-content">
            <view class="info-content">文章区域。。。</view>
            <view class="comment-content" id="comment-content">评论区域。。。</view>
      </view>
</template>


togglePosition(){
      if(this.positionSelect){
            this.positionSelect=false

            //从评论区域回到顶部
            uni.createSelectorQuery().select(‘.comment-content‘).boundingClientRect(data=>{//目标位置的节点:类或者id
                  uni.createSelectorQuery().select(".arc-content").boundingClientRect(res=>{//最外层盒子的节点:类或者id
                        uni.pageScrollTo({
                              duration: 100,//过渡时间
                              scrollTop:res.top - data.top  ,//返回顶部的top值
                        })
                  }).exec()
            }).exec();

      }else{
            this.positionSelect=true

            //从当前位置到达评论区域
            uni.createSelectorQuery().select(‘.comment-content‘).boundingClientRect(data=>{//目标位置的节点:类或者id
                  uni.createSelectorQuery().select(".arc-content").boundingClientRect(res=>{//最外层盒子的节点:类或者id
                        uni.pageScrollTo({
                              duration: 100,//过渡时间
                              scrollTop:data.top - res.top  ,//到达距离顶部的top值
                        })
                  }).exec()
            }).exec();
      }
},


以上是关于uniapp实现锚点跳转的主要内容,如果未能解决你的问题,请参考以下文章

JQuery 实现 锚点跳转

thinkphp怎么跳转到指定页面的锚点

锚点跳转的过渡效果

微信小程序 scroll-view 实现锚点跳转

微信小程序 scroll-view 实现锚点跳转

锚点定位跳转的各种实现方法