我有一個相當簡單的榆樹申請我怎麼能當我拖過一個元素髮送消息
https://github.com/chrisortman/team-player
我無法弄清楚如何實現的東西,會讓我點擊下表中的單元格並拖動到其他幾個單元格上以選擇它們。
它似乎onMouseOver是我想要的,但我不知道如何將它與Mouse.isDown信號相結合。我可以結合Mouse.isDown和Mouse.position,但是我不知道如何將位置綁定回表格單元格。
我覺得這個想法讓我靠近......
import Mouse
import Html exposing(..)
import Html.Attributes exposing(style)
import Html.Events exposing(onMouseOver,onClick)
import Signal exposing(..)
positionWithButton2 =
Signal.map3 (,,) Mouse.isDown Mouse.position mouseEvents.signal
|> Signal.filterMap positionIfDown (0,0)
--positionWithButton =
-- Signal.map2 (,) Mouse.isDown Mouse.position
-- |> Signal.map positionIfDown
font : List (String, String)
font =
[ ("font-family", "futura, sans-serif")
, ("color", "red")
, ("font-size", "2em")
]
type ElementAction
= Hover Int
| NoHover
mouseEvents = Signal.mailbox NoHover
background : List (String, String)
background =
[ ("background-color", "rgb(245, 245, 245)")
]
positionIfDown (isDown,position,hover) =
case (isDown,hover) of
(True, Hover x) -> Just (x,x)
(True, NoHover) -> Just position
(False, Hover x) -> Just position
_ -> Nothing
view pos =
div [ ]
[ p [ style (font ++ background)] [text (toString pos)]
, h1 [onMouseOver mouseEvents.address (Hover 10)]
[text "Magic"]
, Html.button
[ onClick mouseEvents.address NoHover]
[text "Stop"]
]
main : Signal Html
main =
Signal.map view positionWithButton2