Мне не удалось полностью очистить прямоугольник, используя метод clearRect
, который переводится на холст через направление X
. Проблему можно увидеть в прямом эфире на JS Bin - Link to demoПеревести прямоугольник в холсте
код JS
(function() {
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
context.fillStyle = '#ccc';
context.fillRect(0, 0, 100, 50); //x,y,w,h
translate(canvas, context, 0, 0, 100, 50, 'x', 5);
function translate(canvas, context, x, y, w, h, direction, interval) {
context.fillRect(x, y, w, h);
if (direction == 'x') {
if ((x + interval + w >= canvas.width) || (x + interval < 0)) interval = -1 * interval;
setTimeout(function() {
context.clearRect(x, y, w, h);
translate(canvas, context, x + interval, y, w, h, direction, interval);
}, 1000);
}
}
}());
Это оставляет следы, прежде чем двигаться вперед/назад. И я использовал те же размеры, чтобы очистить прямоугольник, который использовался для его рисования.
Пожалуйста, обратите внимание на полный путь для наблюдения за проблемой.
Вы правы. Отлично работает в Firefox 21.0 и благодарит за исправление. – sachinjain024