目录

如何判断Web滑动到了顶部/底部,并且把滑动事件传递给页面

Web组件的onOverScroll事件可以判断滑动是否到达顶部或底部。当yOffset小于0时,表示页面到达顶端;当yOffset大于0时,表示页面到达底端。

具体可参考代码示例:传递滑动事件可参考Web组件嵌套滚动,将Web组件嵌入可滚动容器中,使用nestedScroll属性设置嵌套滚动选项,实现滑动事件传递。具体代码示例如下:

import { webview } from '@kit.ArkWeb';

@Entry
@Component
struct Index {
  private scrollerForScroll: Scroller = new Scroller();
  controller: webview.WebviewController = new webview.WebviewController; // Web component controller, used for loading pages and interaction control
  @State scrollDirection: ScrollDirection = ScrollDirection.Vertical;
  title = '2023落下帷幕,一起迎接2024年***********************************************';
  review = '评论';
  context = '一起迎接2024年,***********************************************************************************';
  list = [0, 0, 0, 0];

  build() {
    Flex() {
      Scroll(this.scrollerForScroll) {
        Column({ space: 5 }) {
          Text(this.title)
            .fontSize(40)
            .padding(40)
          List() {
            ForEach(this.list, () => {
              ListItem() {
                Text(this.context).fontSize(16)
              }
            })
          }

          Web({ src: $rawfile('index.html'), controller: this.controller })
            .nestedScroll({
              scrollForward: NestedScrollMode.SELF_FIRST,
              scrollBackward: NestedScrollMode.SELF_FIRST
            })
            .height('100%')
            .width('100%')
            .layoutMode(WebLayoutMode.FIT_CONTENT)
          Text(this.review)
            .fontSize(30)
          List() {
            ForEach(this.list, () => {
              ListItem() {
                Text(this.context)
                  .fontSize(16)
              }
            })
          }
        }
        .width('95%')
      }
      .scrollBar(BarState.Off)
      .width('100%')
      .height('120%')
      .scrollable(this.scrollDirection)
    }
    .width('100%')
    .height('100%')

  }
}

在“src\main\resources\rawfile”文件夹下创建index.html:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<ol>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
    <li>欢度佳节,********************************************************</li>
    <li>********************************************************</li>
</ol>
</body>
</html>