HarmonyOS 在web中监听滚动?

项目中有功能是使用web组件,web组件中套用H5,现在想监听到这个H5的滚动距离。

阅读 495
1 个回答

可以用document.documentElement.scrollTop || document.body.scrollTop获取滚动距离,例如:

try {
  this.controller.runJavaScriptExt(
    'document.documentElement.scrollTop || document.body.scrollTop',
    (error, result) => {
      if (error) {
        return;
      }
      if (result) {
        try {
          let type = result.getType();
          switch (type) {
            case web_webview.JsMessageType.STRING: {
              break;
            }
            case web_webview.JsMessageType.NUMBER: {
              this.scrollTop = result.getNumber()
              console.info("zfh this.scrollTop = " + this.scrollTop);
              console.info("zfh this.webHeight" + this.webHeight);
              this.pageHeight = this.controller.getPageHeight();
              console.log("zfh pageHeight : " + this.pageHeight);
              this.isWebAtEnd = false
              if (this.scrollTop + this.webHeight >= this.pageHeight) {
                this.isWebAtEnd = true;
              }
              break;
            }
            case web_webview.JsMessageType.BOOLEAN: {
              break;
            }
            case web_webview.JsMessageType.ARRAY_BUFFER: {
              break;
            }
            case web_webview.JsMessageType.ARRAY: {
              break;
            }
            default: {
              break;
            }
          }
        }
        catch (resError) {
        }
      }
    });
} catch (error) {
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进