微信小程序页面自动滚动到指定位置 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 小程序相关 >

微信小程序页面自动滚动到指定位置

发表时间:2021-1-4

发布人:葵宇科技

浏览次数:67

我们有时会需要让页面自动滚动到某个位置(比如点击顶部的目录,滚动到下面对应内容的位置),那么在小程序中我们应该怎么做呢?

做法
1.使用wx.createSelectorQuery().select().boundingClientRect()查询到需要滚动到的元素位置
2.使用wx.pageScrollTo()将页面滚动到对应位置
复制代码

官方文档wx.createSelectorQuery() 官方文档wx.pageScrollTo()

scrollTo() {
	// 1.使用wx.createSelectorQuery()查询到需要滚动到的元素位置
	wx.createSelectorQuery().select('.bb4').boundingClientRect(res => {
	  // 到这里,我们可以从res中读到class为bb4的top,即离顶部的距离(px)
	  // 2使用wx.pageScrollTo()将页面滚动到对应位置
	  wx.pageScrollTo({
	    scrollTop: res.top, // 滚动到的位置(距离顶部 px)
	    duration: 0 //滚动所需时间 如果不需要滚动过渡动画,设为0(ms)
	  })
	}).exec()
}
复制代码

简单!

扩展一下下

上面的方法搞定之后试一下我们就知道,那是把目标位置滚动到页面顶端的。那么如果我们想要目标位置在屏幕中间呢?其实就是在上面拿到元素距离顶部的距离的基础上减去页面的高度的一半。

scrollTo() {
	// 1.使用wx.createSelectorQuery()查询到需要滚动到的元素位置
	wx.createSelectorQuery().select('.bb4').boundingClientRect(res => {
         // 2.使用wx.getSysTemInfo()获取设备及页面高度windowHeight(px)
            wx.getSystemInfo({
                success(ress) {
                  wx.pageScrollTo({
                  	// 3. 滚动的距离根据设备的页面高度进行微调(px)
                    scrollTop: res.top - ress.windowHeight/2 + 50,
                    duration: 200
                  })
                }
          })
        }).exec()
}

相关案例查看更多