html5 實現動畫(一)
編輯:HTML5詳解  
XML/Html Code復制內容到剪貼板
- <canvas id="canvas1" width="250" height="300" style="background-color:black">
- 你的浏覽器不支持 Canvas 標簽,請使用 Chrome 浏覽器 或者 Firefox 浏覽器
- </canvas><br/>
- 幀數:<input id="txt1" type="text" value="25"/><br/>
- 每次移動距離:<input type="text" id="txt2" value="10"/><br/>
- <input type="button" value="開始" onclick="move_box()"/>
- <input type="button" value="暫停" onclick="stop()"/>
- <script type="text/Javascript">
- //定時器
- var interval=null;
- //停止動畫
- function stop(){
- clearInterval(interval);
- }
- //===================================================================
- //基本動畫
- //====================================================================
- function move_box(){
- //停止動畫
- stop();
- //移動速度
- var delta=parseInt(document.getElementById('txt1').value);
- //每秒繪制多少次
- var fps=parseInt(document.getElementById('txt2').value);
- //畫布對象
- var canvas=document.getElementById("canvas1")
- //獲取上下文對象
- var ctx = canvas.getContext("2d");
- //設置顏色
- ctx.fillStyle="red";
- //方塊的初始位置
- var x=100;var y=50;
- //方塊的長度和寬度
- var w=30;var h=30;
- //開始動畫
- interval = setInterval(function(){
- //改變 y 坐標
- yy=y+delta;
- //上邊緣檢測
- if(y<0){
- y=0;
- delta=-delta;
- }
- //下邊緣檢測
- if((y+h)>canvas.getAttribute("height")){
- y=canvas.getAttribute("height")-h;
- delta=-delta;
- }
- //清空畫布
- ctx.clearRect(0,0,canvas.getAttribute("width"),canvas.getAttribute("height"));
- //保存狀態
- ctx.save();
- //移動坐標
- ctx.translate(x,y);
- //重新繪制
- ctx.fillRect(0,0,w,h);
- //恢復狀態
- ctx.restore();
- },1000/fps);
- }
- </script>
源碼下載:donghua1.rar