文档管理中心
FAQ应用框架开发Web框架Web开发(ArkWeb)如何判断Web滑动到了顶部/底部,并且把滑动事件传递给页面

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

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

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

收起
自动换行
深色代码主题
复制
  1. import { webview } from '@kit.ArkWeb';
  2. @Entry
  3. @Component
  4. struct Index {
  5. private scrollerForScroll: Scroller = new Scroller();
  6. controller: webview.WebviewController = new webview.WebviewController; // Web component controller, used for loading pages and interaction control
  7. @State scrollDirection: ScrollDirection = ScrollDirection.Vertical;
  8. title = '2023落下帷幕,一起迎接2024年***********************************************';
  9. review = '评论';
  10. context = '一起迎接2024年,***********************************************************************************';
  11. list = [0, 0, 0, 0];
  12. build() {
  13. Flex() {
  14. Scroll(this.scrollerForScroll) {
  15. Column({ space: 5 }) {
  16. Text(this.title)
  17. .fontSize(40)
  18. .padding(40)
  19. List() {
  20. ForEach(this.list, () => {
  21. ListItem() {
  22. Text(this.context).fontSize(16)
  23. }
  24. })
  25. }
  26. Web({ src: $rawfile('index.html'), controller: this.controller })
  27. .nestedScroll({
  28. scrollForward: NestedScrollMode.SELF_FIRST,
  29. scrollBackward: NestedScrollMode.SELF_FIRST
  30. })
  31. .height('100%')
  32. .width('100%')
  33. .layoutMode(WebLayoutMode.FIT_CONTENT)
  34. Text(this.review)
  35. .fontSize(30)
  36. List() {
  37. ForEach(this.list, () => {
  38. ListItem() {
  39. Text(this.context)
  40. .fontSize(16)
  41. }
  42. })
  43. }
  44. }
  45. .width('95%')
  46. }
  47. .scrollBar(BarState.Off)
  48. .width('100%')
  49. .height('120%')
  50. .scrollable(this.scrollDirection)
  51. }
  52. .width('100%')
  53. .height('100%')
  54. }
  55. }

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

收起
自动换行
深色代码主题
复制
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport"
  6. content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  7. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8. <title>Document</title>
  9. </head>
  10. <body>
  11. <ol>
  12. <li>欢度佳节,********************************************************</li>
  13. <li>********************************************************</li>
  14. <li>欢度佳节,********************************************************</li>
  15. <li>********************************************************</li>
  16. <li>欢度佳节,********************************************************</li>
  17. <li>********************************************************</li>
  18. <li>欢度佳节,********************************************************</li>
  19. <li>********************************************************</li>
  20. <li>欢度佳节,********************************************************</li>
  21. <li>********************************************************</li>
  22. <li>欢度佳节,********************************************************</li>
  23. <li>********************************************************</li>
  24. <li>欢度佳节,********************************************************</li>
  25. <li>********************************************************</li>
  26. <li>欢度佳节,********************************************************</li>
  27. <li>********************************************************</li>
  28. <li>欢度佳节,********************************************************</li>
  29. <li>********************************************************</li>
  30. <li>欢度佳节,********************************************************</li>
  31. <li>********************************************************</li>
  32. <li>欢度佳节,********************************************************</li>
  33. <li>********************************************************</li>
  34. <li>欢度佳节,********************************************************</li>
  35. <li>********************************************************</li>
  36. <li>欢度佳节,********************************************************</li>
  37. <li>********************************************************</li>
  38. <li>欢度佳节,********************************************************</li>
  39. <li>********************************************************</li>
  40. <li>欢度佳节,********************************************************</li>
  41. <li>********************************************************</li>
  42. <li>欢度佳节,********************************************************</li>
  43. <li>********************************************************</li>
  44. <li>欢度佳节,********************************************************</li>
  45. <li>********************************************************</li>
  46. <li>欢度佳节,********************************************************</li>
  47. <li>********************************************************</li>
  48. <li>欢度佳节,********************************************************</li>
  49. <li>********************************************************</li>
  50. <li>欢度佳节,********************************************************</li>
  51. <li>********************************************************</li>
  52. <li>欢度佳节,********************************************************</li>
  53. <li>********************************************************</li>
  54. <li>欢度佳节,********************************************************</li>
  55. <li>********************************************************</li>
  56. <li>欢度佳节,********************************************************</li>
  57. <li>********************************************************</li>
  58. <li>欢度佳节,********************************************************</li>
  59. <li>********************************************************</li>
  60. </ol>
  61. </body>
  62. </html>
在 FAQ 中进行搜索
请输入您想要搜索的关键词