- N +

html5 canvas特效代碼 html5動態網頁代碼

大家好,如果您還對html5不太了解,沒有關系,今天就由本站為大家分享html5的知識,包括html5動態網頁代碼的問題都會給大家分析到,還望可以解決大家的問題,下面我們就開始吧!

html5新增了哪些api

(1)繪畫canvas;(2)用于媒介回放的video和audio元素;(3)本地離線存儲localStorage長期存儲數據,瀏覽器關閉后數據不丟失;(4)sessionStorage的數據在瀏覽器關閉后自動刪除;(5)語意化更好的內容元素,比如article、footer、header、nav、section;(6)表單控件,calendar、date、time、email、url、search;(7)新的技術webworker,websocket,Geolocation;

怎樣用html5做出翻頁的效果

對!html5的動畫效果是用(js)jQuery+css3做的!html5繪圖是用HTML5Canvas畫圖標簽加上API做的!

HTML5用canvas怎么實現動畫效果

HTML5<canvas>元素用于圖形的繪制,通過腳本(通常是JavaScript)來完成。<canvas>標簽只是圖形容器,您必須使用腳本來繪制圖形。你可以通過多種方法使用canvas繪制路徑,盒、圓、字符以及添加圖像。

如何使用html5中的畫布canvas繪制文字

context.fillStyle="#000000";//顏色context.font="normal20px微軟雅黑";//字體context.textBaseline="middle";//豎直對齊context.textAlign="center";//水平對齊context.fillText("文字",x坐標,y坐標,文字寬度);//繪制文字以上是canvas繪制文字常用的.

如何用HTML5實現圖片轉圈的動畫效果

canvas百度下不就知道了,問毛線問

如何使用html5與css3完成google涂鴉動畫

知道如何使用CSS3動畫比知道如何使用<canvas>元素更重要:因為瀏覽器能夠優化那些元素的性能(通常是他們的樣式,比如CSS),而我們使用canvas自定義畫出來的效果卻不能被優化。原因又在于,瀏覽器使用的硬件主要取決于顯卡的能力。目前,瀏覽器沒有給予我們直接訪問顯卡的權力,比如,每一個繪畫操作都不得不在瀏覽器中先調用某些函數。1.canvashtml代碼:

代碼如下:

<html><head><metacharset="UTF-8"/><title>AnimationinHTML5usingthecanvaselement</title></head><bodyonload="init();"><canvasid="canvas"width="1000"height="600">Yourbrowserdoesnotsupportthe<code><canvas></code>-element.Pleasethinkaboutupdatingyourbrower!</canvas><divid="controls"><buttontype="button"onclick="speed(-0.1);">Slower</button><buttontype="button"onclick="play(this);">Play</button><buttontype="button"onclick="speed(+0.1)">Faster</button></div></body></html>

js代碼:定義一些變量:

代碼如下:

vardx=5,//當前速率rate=1,//當前播放速度ani,//當前動畫循環c,//畫圖(CanvasContext)w,//汽車[隱藏的](CanvasContext)grassHeight=130,//背景高度carAlpha=0,//輪胎的旋轉角度carX=-400,//x軸方向上汽車的位置(將被改變)carY=300,//y軸方向上汽車的位置(將保持為常量)carWidth=400,//汽車的寬度carHeight=130,//汽車的高度tiresDelta=15,//從一個輪胎到最接近的汽車底盤的距離axisDelta=20,//汽車底部底盤的軸與輪胎的距離radius=60;//輪胎的半徑

為了實例化汽車canvas(初始時被隱藏),我們使用下面的自執行的匿名函數

代碼如下:

(function(){varcar=document.createElement('canvas');//創建元素car.height=carHeight+axisDelta+radius;//設置高度car.width=carWidth;//設置寬度w=car.getContext('2d');})();

點擊“Play”按鈕,通過定時重復執行“畫汽車”操作,來模擬“幀播放”功能:

代碼如下:

functionplay(s){//參數s是一個buttonif(ani){//如果ani不為null,則代表我們當前已經有了一個動畫clearInterval(ani);//所以我們需要清除它(停止動畫)ani=null;s.innerHTML='Play';//重命名該按鈕為“播放”}else{ani=setInterval(drawCanvas,40);//我們將設置動畫為25fps[幀每秒],40/1000,即為二十五分之一s.innerHTML='Pause';//重命名該按鈕為“暫?!眪}

加速,減速,通過以下方法,改變移動距離的大小來實現:

代碼如下:

functionspeed(delta){varnewRate=Math.max(rate+delta,0.1);dx=newRate/rate*dx;rate=newRate;}頁面加載的初始化方法://initfunctioninit(){c=document.getElementById('canvas').getContext('2d');drawCanvas();}

主調方法:

代碼如下:

functiondrawCanvas(){c.clearRect(0,0,c.canvas.width,c.canvas.height);//清除Canvas(已顯示的),避免產生錯誤c.save();//保存當前坐標值以及狀態,對應的類似“push”操作drawGrass();//畫背景c.translate(carX,0);//移動起點坐標drawCar();//畫汽車(隱藏的canvas)c.drawImage(w.canvas,0,carY);//畫最終顯示的汽車c.restore();//恢復Canvas的狀態,對應的是類似“pop”操作carX+=dx;//重置汽車在X軸方向的位置,以模擬向前走carAlpha+=dx/radius;//按比例增加輪胎角度if(carX>c.canvas.width){//設置某些定期的邊界條件carX=-carWidth-10;//也可以將速度反向為dx*=-1;}}

畫背景:

代碼如下:

functiondrawGrass(){//創建線性漸變,前兩個參數為漸變開始點坐標,后兩個為漸變結束點坐標vargrad=c.createLinearGradient(0,c.canvas.height-grassHeight,0,c.canvas.height);//為線性漸變指定漸變色,0表示漸變起始色,1表示漸變終止色grad.addColorStop(0,'#33CC00');grad.addColorStop(1,'#66FF22');c.fillStyle=grad;c.lineWidth=0;c.fillRect(0,c.canvas.height-grassHeight,c.canvas.width,grassHeight);}

畫車身:

代碼如下:

functiondrawCar(){w.clearRect(0,0,w.canvas.width,w.canvas.height);//清空隱藏的畫板w.strokeStyle='#FF6600';//設置邊框色w.lineWidth=2;//設置邊框的寬度,單位為像素w.fillStyle='#FF9900';//設置填充色w.beginPath();//開始繪制新路徑w.rect(0,0,carWidth,carHeight);//繪制一個矩形w.stroke();//畫邊框w.fill();//填充背景w.closePath();//關閉繪制的新路徑drawTire(tiresDelta+radius,carHeight+axisDelta);//我們開始畫第一個輪子drawTire(carWidth-tiresDelta-radius,carHeight+axisDelta);//同樣的,第二個}

畫輪胎:

代碼如下:

functiondrawTire(x,y){w.save();w.translate(x,y);w.rotate(carAlpha);w.strokeStyle='#3300FF';w.lineWidth=1;w.fillStyle='#0099FF';w.beginPath();w.arc(0,0,radius,0,2*Math.PI,false);w.fill();w.closePath();w.beginPath();w.moveTo(radius,0);w.lineTo(-radius,0);w.stroke();w.closePath();w.beginPath();w.moveTo(0,radius);w.lineTo(0,-radius);w.stroke();w.closePath();w.restore();}

由于原理簡單,并且代碼中作了詳細注釋,這里就不一一講解!2.CSS3你將看到我們未通過一句JS代碼就完全實現了和上面一樣的動畫效果:HTML代碼:

代碼如下:

<html><head><metacharset="UTF-8"/><title>AnimationsinHTML5usingCSS3animations</title></head><body><divid="container"><divid="car"><divid="chassis"></div><divid="backtire"><div></div><div></div></div><divid="fronttire"><div></div><div></div></div></div><divid="grass"></div></div><footer></footer></body></html>CSS代碼:body{padding:0;margin:0;}

定義車身與輪胎轉到的動畫(你會看到基本每一個動畫都有四個版本的定義:原生版本/webkit【Chrome|Safari】/ms【為了向后兼容IE10】/moz【FireFox】)

代碼如下:

/*定義動畫:從-400px的位置移動到1600px的位置*/@keyframescarAnimation{0%{left:-400px;}/*指定初始位置,0%等同于from*/100%{left:1600px;}/*指定最終位置,100%等同于to*/}/*SafariandChrome*/@-webkit-keyframescarAnimation{0%{left:-400px;}100%{left:1600px;}}/*Firefox*/@-moz-keyframescarAnimation{0%{left:-400;}100%{left:1600px;}}/*IE暫不支持,此處定義是為了向后兼容IE10*/@-ms-keyframescarAnimation{0%{left:-400px;}100%{left:1600px;}}@keyframestyreAnimation{0%{transform:rotate(0);}100%{transform:rotate(1800deg);}}@-webkit-keyframestyreAnimation{0%{-webkit-transform:rotate(0);}100%{-webkit-transform:rotate(1800deg);}}@-moz-keyframestyreAnimation{0%{-moz-transform:rotate(0);}100%{-moz-transform:rotate(1800deg);}}@-ms-keyframestyreAnimation{0%{-ms-transform:rotate(0);}100%{-ms-transform:rotate(1800deg);}}#container{position:relative;width:100%;height:600px;overflow:hidden;/*這個很重要*/}#car{position:absolute;/*汽車在容器中采用絕對定位*/width:400px;height:210px;/*汽車的總高度,包括輪胎和底盤*/z-index:1;/*讓汽車在背景的上方*/top:300px;/*距頂端的距離(y軸)*/left:50px;/*距左側的距離(x軸)*//*以下內容賦予該元素預先定義的動畫及相關屬性*/-webkit-animation-name:carAnimation;/*名稱*/-webkit-animation-duration:10s;/*持續時間*/-webkit-animation-iteration-count:infinite;/*迭代次數-無限次*/-webkit-animation-timing-function:linear;/*播放動畫時從頭到尾都以相同的速度*/-moz-animation-name:carAnimation;/*名稱*/-moz-animation-duration:10s;/*持續時間*/-moz-animation-iteration-count:infinite;/*迭代次數-無限次*/-moz-animation-timing-function:linear;/*播放動畫時從頭到尾都以相同的速度*/-ms-animation-name:carAnimation;/*名稱*/-ms-animation-duration:10s;/*持續時間*/-ms-animation-iteration-count:infinite;/*迭代次數-無限次*/-ms-animation-timing-function:linear;/*播放動畫時從頭到尾都以相同的速度*/animation-name:carAnimation;/*名稱*/animation-duration:10s;/*持續時間*/animation-iteration-count:infinite;/*迭代次數-無限次*/animation-timing-function:linear;/*播放動畫時從頭到尾都以相同的速度*/}/*車身*/#chassis{position:absolute;width:400px;height:130px;background:#FF9900;border:2pxsolid#FF6600;}/*輪胎*/.tire{z-index:1;/*同上,輪胎也應置于背景的上方*/position:absolute;bottom:0;border-radius:60px;/*圓半徑*/height:120px;/*2*radius=height*/width:120px;/*2*radius=width*/background:#0099FF;/*填充色*/border:1pxsolid#3300FF;-webkit-animation-name:tyreAnimation;-webkit-animation-duration:10s;-webkit-animation-iteration-count:infinite;-webkit-animation-timing-function:linear;-moz-animation-name:tyreAnimation;-moz-animation-duration:10s;-moz-animation-iteration-count:infinite;-moz-animation-timing-function:linear;-ms-animation-name:tyreAnimation;-ms-animation-duration:10s;-ms-animation-iteration-count:infinite;-ms-animation-timing-function:linear;animation-name:tyreAnimation;animation-duration:10s;animation-iteration-count:infinite;animation-timing-function:linear;}#fronttire{right:20px;/*設置右邊的輪胎距離邊緣的距離為20*/}#backtire{left:20px;/*設置左邊的輪胎距離邊緣的距離為20*/}#grass{position:absolute;/*背景絕對定位在容器中*/width:100%;height:130px;bottom:0;/*讓背景色線性漸變,bottom,表示漸變的起始處,第一個顏色值是漸變的起始值,第二個顏色值是終止值*/background:linear-grdaient(bottom,#33CC00,#66FF22);background:-webkit-linear-gradient(bottom,#33CC00,#66FF22);background:-moz-linear-gradient(bottom,#33CC00,#66FF22);background:-ms-linear-gradient(bottom,#33CC00,#66FF22);}.hr,.vr{position:absolute;background:#3300FF;}.hr{height:1px;width:100%;/*輪胎的水平線*/left:0;top:60px;}.vr{width:1px;height:100%;/*輪胎的垂直線*/left:60px;top:0;}

3.JQuery與CSS3這是一個效果與兼容性俱佳的方式(特別對于IE9暫不支持CSS3而言)HTML代碼(可以看到與CSS3中的HTML代碼并無不同):

代碼如下:

<html><head><metacharset="UTF-8"/><title>AnimationsinHTML5usingCSS3animations</title></head><body><divid="container"><divid="car"><divid="chassis"></div><divid="backtire"><div></div><div></div></div><divid="fronttire"><div></div><div></div></div></div><divid="grass"></div></div><footer></footer></body></html>CSS:<style>body{padding:0;margin:0;}#container{position:relative;width:100%;height:600px;overflow:hidden;/*這個很重要*/}#car{position:absolute;/*汽車在容器中采用絕對定位*/width:400px;height:210px;/*汽車的總高度,包括輪胎和底盤*/z-index:1;/*讓汽車在背景的上方*/top:300px;/*距頂端的距離(y軸)*/left:50px;/*距左側的距離(x軸)*/}/*車身*/#chassis{position:absolute;width:400px;height:130px;background:#FF9900;border:2pxsolid#FF6600;}/*輪胎*/.tire{z-index:1;/*同上,輪胎也應置于背景的上方*/position:absolute;bottom:0;border-radius:60px;/*圓半徑*/height:120px;/*2*radius=height*/width:120px;/*2*radius=width*/background:#0099FF;/*填充色*/border:1pxsolid#3300FF;-o-transform:rotate(0deg);/*旋轉(單位:度)*/-ms-transform:rotate(0deg);-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);}#fronttire{right:20px;/*設置右邊的輪胎距離邊緣的距離為20*/}#backtire{left:20px;/*設置左邊的輪胎距離邊緣的距離為20*/}#grass{position:absolute;/*背景絕對定位在容器中*/width:100%;height:130px;bottom:0;/*讓背景色線性漸變,bottom,表示漸變的起始處,第一個顏色值是漸變的起始值,第二個顏色值是終止值*/background:linear-grdaient(bottom,#33CC00,#66FF22);background:-webkit-linear-gradient(bottom,#33CC00,#66FF22);background:-moz-linear-gradient(bottom,#33CC00,#66FF22);background:-ms-linear-gradient(bottom,#33CC00,#66FF22);}.hr,.vr{position:absolute;background:#3300FF;}.hr{height:1px;width:100%;/*水平線*/left:0;top:60px;}.vr{width:1px;height:100%;/*垂直線*/left:60px;top:0;}</style>

JS代碼:首先引入在線API:

代碼如下:

<scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

實現動畫代碼(相當簡潔):

代碼如下:

<script>$(function(){varrot=0;varprefix=$('.tire').css('-o-transform')?'-o-transform':($('.tire').css('-ms-transform')?'-ms-transform':($('.tire').css('-moz-transform')?'-moz-transform':($('.tire').css('-webkit-transform')?'-webkit-transform':'transform')));varorigin={/*設置我們的起始點*/left:-400};varanimation={/*該動畫由jQuery執行*/left:1600/*設置我們將移動到的最終位置*/};varrotate=function(){/*該方法將被旋轉的輪子調用*/rot+=2;$('.tire').css(prefix,'rotate('+rot+'deg)');};varoptions={/*將要被jQuery使用的參數*/easing:'linear',/*指定速度,此處只是線性,即為勻速*/duration:10000,/*指定動畫持續時間*/complete:function(){$('#car').css(origin).animate(animation,options);},step:rotate};options.complete();});</script>

好了,本文到此結束,如果可以幫助到大家,還望關注本站哦!

返回列表
上一篇:
下一篇: