我試圖通過使用<canvas>
和ontouchstart
和ontouchmove
等觸摸事件原型化一個非常簡單的繪圖應用程序來加快HTML5的速度。桌面瀏覽器支持觸摸事件嗎?
這是顯示和工作正常的Android模擬器,我用鼠標點擊模擬觸摸事件。但是,在我的桌面瀏覽器(Safari 5.1.1,Windows 7上的Firefox 7)中運行時,它完全不起作用。
我認爲鼠標點擊事件會被解釋爲在仿真器中運行時的觸摸事件。
現在我想知道,如果桌面瀏覽器可能不支持觸摸事件。
我試圖通過使用<canvas>
和ontouchstart
和ontouchmove
等觸摸事件原型化一個非常簡單的繪圖應用程序來加快HTML5的速度。桌面瀏覽器支持觸摸事件嗎?
這是顯示和工作正常的Android模擬器,我用鼠標點擊模擬觸摸事件。但是,在我的桌面瀏覽器(Safari 5.1.1,Windows 7上的Firefox 7)中運行時,它完全不起作用。
我認爲鼠標點擊事件會被解釋爲在仿真器中運行時的觸摸事件。
現在我想知道,如果桌面瀏覽器可能不支持觸摸事件。
ontouchstart
將成爲webkit for iphones版本的一個附加組件。你可以測試它,但只能在模擬器上進行測試。
這實際上是相反的。移動瀏覽器將觸摸轉換爲鼠標事件以獲得傳統支持。如果需要在移動設備和桌面設備上工作,並且您不需要觸摸事件,則可以使用鼠標事件。否則,綁定觸摸和鼠標事件,並讓觸摸事件取消鼠標事件。這種方式在移動設備上的觸摸觸發和鼠標不會。在桌面上,觸摸不會觸發,鼠標將會觸發。
對於pilau,這裏是一個取消移動設備上的點擊事件的簡單示例。請注意,這個問題更多的是涉及拖拽的拖拽,這需要更多的代碼來檢測,但基本思想是一樣的,綁定你需要處理的事件。然後e.preventdefault()
將停止移動瀏覽器模擬點擊類型事件。
$('#element').on('touchend click', function(e){
// Do your onclick action now
// cancel the onclick firing
e.preventDefault();
});
MDN文章鏈接到一個示例,但它不適用於當前版本的FF或Safari。 https://developer.mozilla.org/samples/domref/touchevents.html – Justin
@Justin查看更新的答案。 – pradeek
很確定只有firefox mobile 6+支持觸摸事件,而不是桌面的firefox(除非你使用moz-touch事件)。 –