2012-04-23 215 views
0

我可以在畫布上使用動畫元素獲得一些幫助嗎?我想獲取已經在畫布上繪製的元素,並將它們從畫布上「移出」並顯示新元素。我的功能是在JavaScript中,並很好地工作。我只想添加動畫。 TIA。html5動畫畫布已繪製元素

+2

清除所有內容,再次繪製新位置。重複。 – 2012-04-23 21:58:56

+0

什麼@cwolves說。或者使用像[fabric.js](http://fabricjs.com)這樣的庫來處理這個問題。 – kangax 2012-04-25 16:32:58

+0

唯一的問題是,我不知道動畫開始時將在畫布上放置什麼。 – Prostang 2012-04-26 20:42:35

回答

-1

只是有一個事件處理程序控制該畫布的id的樣式的left,然後指定一個循環以使其更改或根據時間向左/右移動。

(function() { 
var speed = 10, 
movePic = function(moveBy) { 
    var el = document.getElementById("animationStyle"), 
     left = el.offsetLeft 


    if ((moveBy > 0 && left > 399) || (moveBy < 0 && left < 51)) { 
     clearTimeout(timer); 
     timer = setInterval(function() { 
      movePic(moveBy * -1); 
     }, speed); 
    } 
    el.style.left = left + moveBy + "px"; 
}; 
var timer = setInterval(function() { 
movePic(3) 
}, speed); 
}()); 

這會來回移動它,這是一個應該幫助您開始的示例。

+0

這是我試圖和失敗的...... – Prostang 2012-04-26 20:57:34

+0

'function moveCanvas(){ var speed = 10; // alert('move canvas'); movePic = function(moveBy){var el = document.getElementById('Canvas1'); var ctx = theCanvas.getContext(「2d」); left = ctx.offsetLeft;如果((moveBy> 0 && left> 399)||(moveBy <0 && left <51)){ clearTimeout(timer); ()函數(){ movePic(moveBy * -1); },speed); } ctx.style.left = left + moveBy +「px」;速度); var timer = setInterval(function(){movePic(3); },speed); }' – Prostang 2012-05-11 14:52:54

+0

「在畫布上動畫元素」,他的意思是畫布繪製元素不是dom標記元素。也許我錯了。 – 2016-12-26 12:03:23