Ich habe heute von Chrome Version 17 auf Chrome aktualisiert: 18.0.1025.142.Google Chrome - context.canvas.width/context.canvas.width verursacht "Blaue Ebene"
Ich habe bemerkt, dass eine der Web-Apps, an denen ich gerade arbeite, eine seltsame blaue Ebene hat, die beim Laden erscheint und dann beim Scrollen verschwindet.
Ich habe dies aufgespürt zu den folgenden Zeilen in meinem JS:
context.canvas.width = canWidth;
context.canvas.height = canHeight;
canWidth und canHeight werden dynamisch generiert.
Durch das Kommentieren dieser Zeilen wird die Wiedergabe der blauen Ebene gestoppt, dies ist jedoch kein Fix, da ich die dynamisch generierten Werte zur Steuerung der Breite/Höhe der Zeichenfläche verwenden muss.
Ich habe auch versucht, die context.canvas.width und context.canvas.height hart auf 600 zu codieren, und dies erzeugte auch die blaue Schicht Problem.
Das war kein Problem in früheren Versionen von Chrome, und ich habe keine Probleme in FireFox.
Irgendwelche Vorschläge, was das Problem sein könnte?
Edit:
Hier ist der Code-Block, wo die oben befindet (nodeLeft und nodeTop erzeugt werden, sonst wo):
context.clearRect (0 , 0 ,canWidth, canHeight);
context.canvas.width = canWidth;
context.canvas.height = canHeight;
context.beginPath();
context.moveTo(x, y);
context.lineTo(nodeLeft, nodeTop);
context.strokeStyle = "#000000";
context.lineCap = "round";
context.stroke();
Sind Sie den zusätzlichen Code einmal auf Last oder mousemove- tun/mouseup? –
beim Laden und dann bei nachfolgenden Mausbewegungen, wenn ein Knoten gezogen wird. – ctdeveloper
Die Größe der Zeichenfläche ist viel langsamer als das Schreiben darauf. Wenn Sie das bei Mausbewegungen tun, könnte das das Problem sein. Nachdem Sie die Leinwandgröße festgelegt haben, sollten Sie nur das Rechteck der Leinwandgröße löschen. –