滚动时如何创建 Elm Lang 事件?

问题描述

我想知道用户何时在我的网页中滚动。每次用户滚动后如何创建 Elm 事件?

解决方法

最简单的方法是在 div 上创建一个事件监听器。使用 Html.Events on 创建自定义事件侦听器。

然后需要将该 html 事件解码为 Elm 事件。像这样:

on "wheel" (Decode.succeed Scroll) 其中 ScrollMsg,它可以是任何应用的 Msg。这可以应用于任何 div。例如,这里是使用 Elm-UI 检测网页中任意位置滚动的实现。

import Html.Events exposing (on)
import Json.Decode as Decode

view model =
    layout
        [ htmlAttribute <| on "wheel" (Decode.succeed Scroll)
        ]
    <|
        column []
            [
               ~~~ snip
            ]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...