に、我々はoffsetLeft
のような重要な特性を持つDOM要素への参照を保持しているthis
へのアクセスを取得します。取得offsetLeftはJSでのMouseMove
にはどうすればいいので、私はこれらのプロパティを取得することができニレでthis
オブジェクトをデコードするのですか?
に、我々はoffsetLeft
のような重要な特性を持つDOM要素への参照を保持しているthis
へのアクセスを取得します。取得offsetLeftはJSでのMouseMove
にはどうすればいいので、私はこれらのプロパティを取得することができニレでthis
オブジェクトをデコードするのですか?
次のようにそうでなければ、あなたがあなた自身のイベントハンドラを構築し、私はあなたがhttp://package.elm-lang.org/packages/elm-lang/html/1.1.0/Html-Events#onMouseUpから取り戻すかわからないんだけどそれは
十分かもしれません:
http://package.elm-lang.org/packages/elm-lang/html/1.1.0/Html-Events#on
onMouseMove : msg -> Attribute msg
onMouseMove message =
on "mousemove" (Json.map message (Json.at ["offsetLeft"] Json.int))
-- on "mousemove" (Json.map message (Json.at ["target", "offsetLeft"] Json.int))
私はjsイベントオブジェクトの中の 'target'プロパティを知っていましたが、残念ながらそれを聴いたのではなくイベントをキャプチャしたdom要素への参照です。私は、そのイベントを聞く要素への参照が必要です。これは 'this'です。 – Birowsky
このパッケージを試してみてください、 http://package.elm-lang.org/packages/debois/elm-dom/1.2.1/
それはあなたのイベントハンドラでDOMプロパティにアクセスすることができます。
DOMから状態/値を取得することは、エルムの方法ではないと思います。私はそれをあなたのモデルに入れ、モデルからDOMを構築しようとするべきだと思います。イベントハンドラは、DOMの状態ではなく、ユーザアクションを取得するために使用されます。 – Tosh
どのようにoffsetLeftをモデルの中に入れますか?もっと良い方法ですが、ブラウザの幅をモデルにどのように入れますか): – Birowsky
ブラウザのイベントに反応するのに 'port'を使います。 – Tosh