css動畫效果大全,css動畫持續時間

這篇文章給大家聊聊關于css動畫效果大全,以及css動畫持續時間對應的知識點,希望對各位有所幫助,不要忘了收藏本站哦。css代碼動畫執行后如何消失要使CSS動畫執行后消...
這篇文章給大家聊聊關于css動畫效果大全,以及css動畫持續時間對應的知識點,希望對各位有所幫助,不要忘了收藏本站哦。
css代碼動畫執行后如何消失
要使CSS動畫執行后消失,您可以使用CSS過渡(transition)和動畫(animation)屬性。
使用CSS過渡(transition)屬性:
您可以使用CSS過渡屬性來定義元素從一個狀態到另一個狀態的過渡效果。例如,如果您想要使一個元素在動畫執行后消失,您可以使用以下CSS代碼:
css
復制
.element{
transition:opacity1sease-in-out;
opacity:1;
}
.element.hidden{
opacity:0;
}
在上面的代碼中,我們定義了一個名為element的元素,并使用transition屬性定義了它的透明度從1到0的過渡效果。我們還定義了一個名為hidden的類,當元素具有這個類時,它的透明度將變為0。
使用CSS動畫(animation)屬性:
您可以使用CSS動畫屬性來定義動畫序列。例如,如果您想要使一個元素在動畫執行后消失,您可以使用以下CSS代碼:
css
復制
@keyframesfade-out{
0%{opacity:1;}
100%{opacity:0;}
}
.element{
animation:fade-out1sease-in-outforwards;
}
在上面的代碼中,我們定義了一個名為fade-out的動畫序列,它將在1秒內將元素的透明度從1到0。我們還定義了一個名為element的元素,并使用animation屬性將這個動畫序列應用于它。最后,我們使用forwards關鍵字來指定動畫完成后元素的最終狀態。
無論您選擇使用CSS過渡還是動畫屬性,都可以使元素在動畫執行后消失。
如何使用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>
css動畫怎么導出在手機和微信上能看的,感謝各位大佬了
作為一個工作多年的前端開發,我來回答一下這個問題。
首先需要說明的是:css動畫是無法導出的。在web中能直接導出動畫模型的應該只有webgl了。
隨著html5和css3的流行。傳統的dom動畫可以不再依賴于js,CSS3給我們提供了兩種動畫方式。
過渡動畫transition我們只需要給要運動的元素添加一個transition屬性,設置時間,運動方式,運動屬性,延遲時間等。當我們改變它的CSS屬性的時候,就是啟用當前設置的動畫。弊端是動畫形式比較單一,優勢是設置起來比較容易。
幀動畫keyframes它可以實現一些比較復雜的動畫。首先我們需要通過keyframesname{}的形式去定義一個動畫。name為當前的動畫名稱,它里面可以設置N個動畫幀。適合一些復雜的交互動畫,它的弊端是創建幀動畫的過程很繁瑣。好在在css3中,有一個很有名的動畫庫
animation.css
里面提供了大量的動畫,我們可以根據自己的需要選擇其中的動畫、希望我的回答能幫助到你^_^
css按鈕如何忽大忽小閃爍
要讓CSS按鈕實現忽大忽小閃爍的效果,可以使用CSS3動畫屬性(animation)。可以定義兩個不同的樣式,然后使用animation屬性設置樣式的切換和持續時間。通過將animation屬性應用于按鈕,可以使其在兩個不同的樣式之間來回閃爍,實現忽大忽小閃爍的效果。具體的實現方法可以參考CSS3動畫的相關指南或示例。
css動畫用得多嗎
當然css3會用的很多現在,而且還不少。不管是用以前jQuery寫的頁面還是用現代框架(比如Vue)寫的界面,都會用到大量css3,因為很多動畫效果現在都不用jq來做了,用css3來寫這樣能提高性能效率。
css3和jq配合使用這樣能能快的提高開發效率。
如何用css制作動畫效果
首先這個問題是一個web開發方面的專業性問題。我們拋開這個專業性,從題目中我們要弄清兩個名詞,什么是css,什么是動畫
css:CascadingStyleSheets(層疊樣式表),是一種用來表現HTML或XML等文件樣式的計算機語言,在程序員眼中,甚至稱不上是語言。
動畫:采用逐幀拍攝對象并連續播放而形成運動的影像技術,計算機中的動畫也是如此,逐幀播放,每一幀有個元素形態,然后組合起來。
理解了上面的概念,我們再去談談用css制作動畫,css3之前的版本是不可能用純css制作動畫,需要配合js一起才能制作,通過js控制元素每幀的形態,直到css3這個版本出來,才有純css3制作一些常見的簡單的動畫,其中有3個動畫屬性:變形(transform)、轉換(transition)和動畫(animation),具體教程網上比較多,內容解說代碼也比較多,這里省略,
下面說一下制作動畫的步驟:一:自己要清楚自己所要做的動畫的一個整體形態,首先就是要建模二:拆分動畫形態,就是每幀的形態,或者是一個時長動畫的開始和結束形態,中間過程的變化形態。三:通過css動畫屬性進行編碼出這些形態。如果是復雜的,用css配合js編寫出來即可。
如果你還想了解更多這方面的信息,記得收藏關注本站。
本文鏈接:http://xinin56.com/ruanjian/910.html