NodesRef.scrollOffset

解释: 添加节点的滚动位置查询请求,以像素为单位。节点必须是 scroll-view 或者 viewport 。返回值是 nodesRef 对应的 selectorQuery 。

方法参数

Function callback

返回值说明

返回的节点信息中,每个节点的滚动位置用 scrollLeft 、scrollTop 字段描述。如果提供了 callback 回调函数,在执行 selectQuery 的 exec 方法后,节点信息会在 callback 中返回。

参数类型说明
scrollLeftNunber节点水平滚动位置
scrollTopNunber节点竖直滚动位置

示例

在开发者工具中预览效果

扫码体验

NodesRef.scrollOffset - 图1请使用百度APP扫码

图片示例

NodesRef.scrollOffset - 图2

NodesRef.scrollOffset - 图3

NodesRef.scrollOffset - 图4

代码示例

  • 在 swan 文件中
  1. <view class="wrap">
  2. <view class="message">
  3. <text s-if="appear">小球出现</text>
  4. <text s-else>小球消失</text>
  5. </view>
  6. <view>
  7. <scroll-view class="scroll-view" scroll-y>
  8. <view class="scroll-area" style="{{appear ? 'background: #ccc' : ''}}">
  9. <text class="notice">向下滚动让小球出现</text>
  10. <view class="filling"></view>
  11. <view class="ball"></view>
  12. </view>
  13. </scroll-view>
  14. </view>
  15. <button bindtap="getNodeRef">点击获取scrollview组件的nodeRef信息</button>
  16. </view>
  • 在 js 文件中
  1. Page({
  2. data: {
  3. appear: false
  4. },
  5. onReady() {
  6. const IntersectionObserver = swan.createIntersectionObserver(this);
  7. IntersectionObserver.relativeTo('.scroll-view').observe('.ball', res => {
  8. console.log('observe', res)
  9. this.setData('appear', res.intersectionRatio > 0);
  10. });
  11. this.IntersectionObserver = IntersectionObserver;
  12. },
  13. getNodeRef() {
  14. const node = swan.createSelectorQuery().select('.scroll-view');
  15. node.scrollOffset(res => {
  16. console.log('scrollOffset:::', res);
  17. swan.showModal({
  18. title: 'scrollOffset',
  19. content: JSON.stringify(res)
  20. });
  21. }).exec();
  22. }
  23. });