2013-11-14 43 views
3

我有一個簡單的網頁遊戲,在HTML5和CSS上使用Angular。它使用Angular的ng-mousedown,ng-mousemove和ng-mouseup指令來讓用戶突出顯示遊戲中的字母和方塊,並從一邊到另一邊「滑動」。觸控設備上的角度鼠標指令

在瀏覽器中可以在桌面上使用。但是,在iPad或iPhone上的移動Safari中,沒有任何鼠標操作可以正確觸發 - 而不是影響遊戲元素,觸摸操作只是嘗試平移和縮放瀏覽器窗口本身。

到目前爲止,我已將jQuery保留在我的解決方案之外。我已經使用jQuery-touch-punch來讓jQUery-UI在移動Safari上拖放工作。但什麼是jQuery-less解決方案?我只是希望應用的行爲方式與在桌面瀏覽器上的行爲相同。

在此先感謝!

回答

1

ngTouch聽起來像你想要的模塊。 ngClick是jQuery點擊的抽象,以支持鼠標和觸摸事件。如果你想突出的東西,而在用戶按下,這個片段可能會有幫助從文檔:

此指令還設置了CSS類,而該元素被按下(由NG-點擊活躍鼠標點擊或觸摸),以便您可以根據需要重新設置凹陷元素。

此外,ngSwipeLeftngSwipeRight允許設置滑動事件回調。

但是,聽起來您的遊戲可能需要比簡單綁定這3個指令更復雜的行爲。如果您使用創建自己的指令並使用$swipe服務,則可能會對行爲進行更好的控制。

+0

這看起來很酷,除了 - 它只支持水平滑動,而不是垂直?這對我來說似乎無法相信。 – blaster

+0

'$ swipe'服務支持兩者。從文檔中(與我的答案相關):「一旦超過這個閾值,水平或垂直三角洲就會更大 - 如果水平距離更大,這是一個滑動和移動,結束事件跟隨 - 如果垂直距離更大,這是一個滾動,我們讓瀏覽器接管。「 – jelinson