问题描述
我想知道用户何时在我的网页中滚动。每次用户滚动后如何创建 Elm 事件?
解决方法
最简单的方法是在 div 上创建一个事件监听器。使用 Html.Events on 创建自定义事件侦听器。
然后需要将该 html 事件解码为 Elm 事件。像这样:
on "wheel" (Decode.succeed Scroll)
其中 Scroll
是 Msg
,它可以是任何应用的 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
]