微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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();
      }
},

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐