2012-06-25 43 views
0

我有一個基本的HTML繪圖應用程序使用jQuery lib Sketch.js(它使用< canvas>,在所有桌面瀏覽器上都能很好地運行IE,Opera,Chrome和Firefox。在Opera Mobile,Chrome Mobile,Firefox Mobile,Dolphin HD,Android股票瀏覽器上工作正常2.2.4。HTML5 Canvas onmousedown在Android 4.0中的事件ICS奇怪的行爲

但是,當我在Android 4.0股票瀏覽器上測試它時,無論是在平板電腦或手機上,當我按該元素會以藍色突出顯示,並且觸摸事件始於中心,而不管手指的實際位置如何,然後返回並像正常一樣跟蹤手指。顯然,每次元素被觸摸時,不需要的線路得到在特定瀏覽器上繪製。

對於測試,我嘗試禁用sketch.js,只是做了一個通用的onmousedown事件與警報。當發生這種情況時,整個畫布會再次以藍色突出顯示,並且我想象會發生相同的行爲。當我去Sketch.js網站,發生完全相同的行爲....

是否有任何已知的解決此行爲?或者是否有替代Sketch.js這不表現出這種行爲? (我想所有<畫布>與onmousedown事件事件元素是完全雖然相同)

爲了完整,這是HTML + JS:

<canvas style="border:1pt solid black;margin:auto;cursor:crosshair;clear:both;" width="450px" height="200px" id="colors_sketch" ></canvas> 
<script type="text/javascript"> 
    $(function() { 
     $('#colors_sketch').sketch(); 
    }); 
</script> 
+0

您是否曾經找到過解決方案?我有同樣的問題。 –

+0

我有點發現一個解決方案,我用一個不同的庫來執行相同的功能:http://www.unbolt.net/jSignature/這沒有問題,悲傷我不能完全解決上述問題。 – Mattisdada

回答

1

出於某種原因,甚至在觸摸鼠標事件搞亂瀏覽器屏幕。

爲了解決這個問題,只需在你的ontouchstart事件中設置mousedown,mouseup,mousemove事件爲undefined。