微信小程序点击滚动到指定位置的实现微信小程序点击滚动到指定位置的实现
主要介绍了微信小程序点击滚动到指定位置的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工
作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
公司项目要做一个类似微信通讯录导航的效果,点击右侧字母页面滚动到相应位置。
因为微信小程序没有dom概念,所以不能使用锚点,也不能直接获取对应字母相对页面的偏移位置。此时只能使用小程序创建
对象实例的API获取节点信息:
let query = wx.createSelectorQuery().in(this);
query.selectViewport().scrollOffset()
query.select("#Nav").boundingClientRect();
query.select("#FilterNav").boundingClientRect();
query.select("#"+((letter=='#')?'other':letter)).boundingClientRect();
query.exec(function (res) {
let scrollTop = 0;
if(res[3]){
scrollTop = res[0].scrollTop + res[3].top
}else{
scrollTop = res[0].scrollTop;
}
wx.pageScrollTo({
scrollTop: scrollTop - res[1].height - res[2].height,
duration: 300
});
});
解释一下该代码的意思:
1.先创建节点对象,wx.createSelectorQuery()返回一个对象实例;
2.选择显示区域;
3.调用select方法,传入节点的id值,可在同一节点对象进行多次调用,最后会返回数组结果(上图中滚动区域距离页面顶部
评论5
最新资源