2013-06-17 14 views
7

Mam problem z tym prosty plik HTML5:Plik HTML5/JavaScript z Canvas nie działa z Chrome i Firefox w systemie Windows 8, ale działa ze wszystkimi przeglądarkami w systemie Windows 7. Dlaczego?

var canvas = window.__canvas = new fabric.Canvas('c'); 
 
canvas.backgroundColor = '#efefef'; 
 
canvas.freeDrawingBrush.width = 10; 
 
canvas.renderAll(); 
 

 
document.getElementById('drawingMode').addEventListener('click', function(e) { 
 
    e.target.innerHTML = canvas.isDrawingMode ? 'Start freedrawing' : 'End freedrawing'; 
 
    canvas.isDrawingMode = !canvas.isDrawingMode; 
 
});
canvas { 
 
    border: 1px solid #ccc; 
 
    padding: 20px; 
 
} 
 
/*.canvas-class { 
 
    border-left: 20px solid black; 
 
    padding: 20px; 
 
}*/
<button id="drawingMode">Start freedrawing</button> 
 
<div class="wrapper"> 
 
    <canvas id="c" class="canvas-class" width="400" height="300" style="border:1px solid #ccc;"></canvas> 
 
</div>

Jest to prosty plik HTML5 z JavaScript wdrożeniach, gdzie można po prostu narysować na płótnie. Działa dobrze na wszystkich przeglądarkach w systemie Windows 7 (mój stary laptop). Ale z Chrome & Firefox na Windows 8 (mój nowy laptop) nie można niczego narysować, to nie działa!

tryb Opierając się na Windows 7:

  • chrome: OK
  • Firefox: OK
  • opera: OK
  • IE10: OK
  • safari: OK

Rysunek Tryb Windows 8:

  • chrome: NO
  • Firefox: NO
  • opera: OK
  • IE10: OK
  • safari: OK

Czy ktoś może rozwiązać problem? To dziwne, że DrawingMode nie działa na chrome i firefoxie, ale działa dobrze na operach, IE10 i Safari pod Windows 8.

+1

Czy masz touchpad podłączony do komputera? – kangax

+3

Wygląda dobrze dla mnie na Chrome 28.0.1500.72/FF 22 + Win 8 – Rannnn

+0

Czy masz te same problemy w Win8, zarówno w trybie pulpitu i trybie Metro? – Spudley

Odpowiedz

1

Zakładam, że twój laptop z Windows 7 nie miał dotyku. Oznaczało to, że wszystkie przeglądarki musiały przechwytywać zdarzenia myszy/touchpada. Jeśli jednak masz laptop z systemem Windows 8, przeglądarki mogą mieć różne źródła sygnału wejściowego (np. Touchpad lub ekran dotykowy). Różne przeglądarki mogą wykorzystywać różne implementacje obsługi każdego wejścia powodujące tę rozbieżność, którą widzisz.

5

Firma Fabric.js uważa, że ​​Twój Chrome/Firefox ma włączoną obsługę dotykową, więc dołącza się do zdarzeń dotykowych zamiast zdarzeń myszy.

Nie jest dla mnie zbyt jasne, czy jest to błąd w przeglądarce Chrome/Firefox lub w tkaninie, czy w obu.

Zobacz ten https://github.com/kangax/fabric.js/issues/670 a także to https://github.com/kangax/fabric.js/issues/450

+0

To jest coś, o czym mamy zamiar zająć się już wkrótce. Spróbuję to naprawić w nadchodzącym wydaniu 1.4 pod koniec października. – kangax

+1

To jest już naprawione, btw – kangax

Powiązane problemy