用提供的方法无法获取到制定节点的scrollTop信息。节点的信息里,只有
rect.id // 节点的ID
rect.dataset // 节点的dataset
rect.left // 节点的左边界坐标
rect.right // 节点的右边界坐标
rect.top // 节点的上边界坐标
rect.bottom // 节点的下边界坐标
rect.width // 节点的宽度
rect.height // 节点的高度
没有scrollTop信息。用最下面的demo,如下
wx.createSelectorQuery().select('#the-id').fields({
dataset: true,
size: true,
scrollOffset: true,
properties: ['scrollX', 'scrollY']
}, function(res){
res.dataset // 节点的dataset
res.width // 节点的宽度
res.height // 节点的高度
res.scrollLeft // 节点的水平滚动位置
res.scrollTop // 节点的竖直滚动位置
res.scrollX // 节点 scroll-x 属性的当前值
res.scrollY // 节点 scroll-x 属性的当前值
}).exec()
}
拿到的scrollTop 和scrollLeft 始终都为0。而且没有scrollX 和scrollY 的信息
楼主的问题,请仔细阅读文档 scrollOffset 相关的部分,这里不多做解答。
1楼的问题:如果节点或任意父节点的 display 为 none 或设了 hidden,即节点没有在界面内拥有布局位置,其相关信息会为 0。
2楼的问题:如果调用 selectorQuery.exec 时,节点还不存在(如节点在 wx:if 的 false 分支内),则会匹配不到节点,此时会返回 null 。
我是在已经生成节点之后才使用的该方法,意思已经在界面内有布局位置了。异步拿到数据后,在界面内生成了节点,再调用的这个方法拿该节点的信息的
在旧版本基础库的某些情况下,调用 setData 后马上调用 selectorQuery.exec ,有可能取不到 setData 变更后的信息。需要写在 setData 的回调函数(第二个参数)里面。看下是不是这个问题。
而且节点的display是true,是显示的,并没有隐藏什么的
必须是 scroll-view 或者 viewport
用的是view这个标签
组件里面如何使用
wx.createSelectorQuery
返回null
顶一下,
WXML节点信息API
这个api写的所有方法拿到的 width height等信息都为0