css動(dòng)畫效果大全,css動(dòng)畫持續(xù)時(shí)間
這篇文章給大家聊聊關(guān)于css動(dòng)畫效果大全,以及css動(dòng)畫持續(xù)時(shí)間對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站哦。css代碼動(dòng)畫執(zhí)行后如何消失要使CSS動(dòng)畫執(zhí)行后消...
這篇文章給大家聊聊關(guān)于css動(dòng)畫效果大全,以及css動(dòng)畫持續(xù)時(shí)間對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站哦。
css代碼動(dòng)畫執(zhí)行后如何消失
要使CSS動(dòng)畫執(zhí)行后消失,您可以使用CSS過渡(transition)和動(dòng)畫(animation)屬性。
使用CSS過渡(transition)屬性:
您可以使用CSS過渡屬性來定義元素從一個(gè)狀態(tài)到另一個(gè)狀態(tài)的過渡效果。例如,如果您想要使一個(gè)元素在動(dòng)畫執(zhí)行后消失,您可以使用以下CSS代碼:
css
復(fù)制
.element{
transition:opacity1sease-in-out;
opacity:1;
}
.element.hidden{
opacity:0;
}
在上面的代碼中,我們定義了一個(gè)名為element的元素,并使用transition屬性定義了它的透明度從1到0的過渡效果。我們還定義了一個(gè)名為hidden的類,當(dāng)元素具有這個(gè)類時(shí),它的透明度將變?yōu)?。
使用CSS動(dòng)畫(animation)屬性:
您可以使用CSS動(dòng)畫屬性來定義動(dòng)畫序列。例如,如果您想要使一個(gè)元素在動(dòng)畫執(zhí)行后消失,您可以使用以下CSS代碼:
css
復(fù)制
@keyframesfade-out{
0%{opacity:1;}
100%{opacity:0;}
}
.element{
animation:fade-out1sease-in-outforwards;
}
在上面的代碼中,我們定義了一個(gè)名為fade-out的動(dòng)畫序列,它將在1秒內(nèi)將元素的透明度從1到0。我們還定義了一個(gè)名為element的元素,并使用animation屬性將這個(gè)動(dòng)畫序列應(yīng)用于它。最后,我們使用forwards關(guān)鍵字來指定動(dòng)畫完成后元素的最終狀態(tài)。
無論您選擇使用CSS過渡還是動(dòng)畫屬性,都可以使元素在動(dòng)畫執(zhí)行后消失。
如何使用html5與css3完成google涂鴉動(dòng)畫
知道如何使用CSS3動(dòng)畫比知道如何使用<canvas>元素更重要:因?yàn)闉g覽器能夠優(yōu)化那些元素的性能(通常是他們的樣式,比如CSS),而我們使用canvas自定義畫出來的效果卻不能被優(yōu)化。原因又在于,瀏覽器使用的硬件主要取決于顯卡的能力。目前,瀏覽器沒有給予我們直接訪問顯卡的權(quán)力,比如,每一個(gè)繪畫操作都不得不在瀏覽器中先調(diào)用某些函數(shù)。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,//當(dāng)前速率rate=1,//當(dāng)前播放速度ani,//當(dāng)前動(dòng)畫循環(huán)c,//畫圖(CanvasContext)w,//汽車[隱藏的](CanvasContext)grassHeight=130,//背景高度carAlpha=0,//輪胎的旋轉(zhuǎn)角度carX=-400,//x軸方向上汽車的位置(將被改變)carY=300,//y軸方向上汽車的位置(將保持為常量)carWidth=400,//汽車的寬度carHeight=130,//汽車的高度tiresDelta=15,//從一個(gè)輪胎到最接近的汽車底盤的距離axisDelta=20,//汽車底部底盤的軸與輪胎的距離radius=60;//輪胎的半徑
為了實(shí)例化汽車canvas(初始時(shí)被隱藏),我們使用下面的自執(zhí)行的匿名函數(shù)
代碼如下:
(function(){varcar=document.createElement('canvas');//創(chuàng)建元素car.height=carHeight+axisDelta+radius;//設(shè)置高度car.width=carWidth;//設(shè)置寬度w=car.getContext('2d');})();
點(diǎn)擊“Play”按鈕,通過定時(shí)重復(fù)執(zhí)行“畫汽車”操作,來模擬“幀播放”功能:
代碼如下:
functionplay(s){//參數(shù)s是一個(gè)buttonif(ani){//如果ani不為null,則代表我們當(dāng)前已經(jīng)有了一個(gè)動(dòng)畫clearInterval(ani);//所以我們需要清除它(停止動(dòng)畫)ani=null;s.innerHTML='Play';//重命名該按鈕為“播放”}else{ani=setInterval(drawCanvas,40);//我們將設(shè)置動(dòng)畫為25fps[幀每秒],40/1000,即為二十五分之一s.innerHTML='Pause';//重命名該按鈕為“暫?!眪}
加速,減速,通過以下方法,改變移動(dòng)距離的大小來實(shí)現(xiàn):
代碼如下:
functionspeed(delta){varnewRate=Math.max(rate+delta,0.1);dx=newRate/rate*dx;rate=newRate;}頁面加載的初始化方法://initfunctioninit(){c=document.getElementById('canvas').getContext('2d');drawCanvas();}
主調(diào)方法:
代碼如下:
functiondrawCanvas(){c.clearRect(0,0,c.canvas.width,c.canvas.height);//清除Canvas(已顯示的),避免產(chǎn)生錯(cuò)誤c.save();//保存當(dāng)前坐標(biāo)值以及狀態(tài),對(duì)應(yīng)的類似“push”操作drawGrass();//畫背景c.translate(carX,0);//移動(dòng)起點(diǎn)坐標(biāo)drawCar();//畫汽車(隱藏的canvas)c.drawImage(w.canvas,0,carY);//畫最終顯示的汽車c.restore();//恢復(fù)Canvas的狀態(tài),對(duì)應(yīng)的是類似“pop”操作carX+=dx;//重置汽車在X軸方向的位置,以模擬向前走carAlpha+=dx/radius;//按比例增加輪胎角度if(carX>c.canvas.width){//設(shè)置某些定期的邊界條件carX=-carWidth-10;//也可以將速度反向?yàn)閐x*=-1;}}
畫背景:
代碼如下:
functiondrawGrass(){//創(chuàng)建線性漸變,前兩個(gè)參數(shù)為漸變開始點(diǎn)坐標(biāo),后兩個(gè)為漸變結(jié)束點(diǎn)坐標(biāo)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';//設(shè)置邊框色w.lineWidth=2;//設(shè)置邊框的寬度,單位為像素w.fillStyle='#FF9900';//設(shè)置填充色w.beginPath();//開始繪制新路徑w.rect(0,0,carWidth,carHeight);//繪制一個(gè)矩形w.stroke();//畫邊框w.fill();//填充背景w.closePath();//關(guān)閉繪制的新路徑drawTire(tiresDelta+radius,carHeight+axisDelta);//我們開始畫第一個(gè)輪子drawTire(carWidth-tiresDelta-radius,carHeight+axisDelta);//同樣的,第二個(gè)}
畫輪胎:
代碼如下:
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();}
由于原理簡(jiǎn)單,并且代碼中作了詳細(xì)注釋,這里就不一一講解!2.CSS3你將看到我們未通過一句JS代碼就完全實(shí)現(xiàn)了和上面一樣的動(dòng)畫效果: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;}
定義車身與輪胎轉(zhuǎn)到的動(dòng)畫(你會(huì)看到基本每一個(gè)動(dòng)畫都有四個(gè)版本的定義:原生版本/webkit【Chrome|Safari】/ms【為了向后兼容IE10】/moz【FireFox】)
代碼如下:
/*定義動(dòng)畫:從-400px的位置移動(dòng)到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;/*這個(gè)很重要*/}#car{position:absolute;/*汽車在容器中采用絕對(duì)定位*/width:400px;height:210px;/*汽車的總高度,包括輪胎和底盤*/z-index:1;/*讓汽車在背景的上方*/top:300px;/*距頂端的距離(y軸)*/left:50px;/*距左側(cè)的距離(x軸)*//*以下內(nèi)容賦予該元素預(yù)先定義的動(dòng)畫及相關(guān)屬性*/-webkit-animation-name:carAnimation;/*名稱*/-webkit-animation-duration:10s;/*持續(xù)時(shí)間*/-webkit-animation-iteration-count:infinite;/*迭代次數(shù)-無限次*/-webkit-animation-timing-function:linear;/*播放動(dòng)畫時(shí)從頭到尾都以相同的速度*/-moz-animation-name:carAnimation;/*名稱*/-moz-animation-duration:10s;/*持續(xù)時(shí)間*/-moz-animation-iteration-count:infinite;/*迭代次數(shù)-無限次*/-moz-animation-timing-function:linear;/*播放動(dòng)畫時(shí)從頭到尾都以相同的速度*/-ms-animation-name:carAnimation;/*名稱*/-ms-animation-duration:10s;/*持續(xù)時(shí)間*/-ms-animation-iteration-count:infinite;/*迭代次數(shù)-無限次*/-ms-animation-timing-function:linear;/*播放動(dòng)畫時(shí)從頭到尾都以相同的速度*/animation-name:carAnimation;/*名稱*/animation-duration:10s;/*持續(xù)時(shí)間*/animation-iteration-count:infinite;/*迭代次數(shù)-無限次*/animation-timing-function:linear;/*播放動(dòng)畫時(shí)從頭到尾都以相同的速度*/}/*車身*/#chassis{position:absolute;width:400px;height:130px;background:#FF9900;border:2pxsolid#FF6600;}/*輪胎*/.tire{z-index:1;/*同上,輪胎也應(yīng)置于背景的上方*/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;/*設(shè)置右邊的輪胎距離邊緣的距離為20*/}#backtire{left:20px;/*設(shè)置左邊的輪胎距離邊緣的距離為20*/}#grass{position:absolute;/*背景絕對(duì)定位在容器中*/width:100%;height:130px;bottom:0;/*讓背景色線性漸變,bottom,表示漸變的起始處,第一個(gè)顏色值是漸變的起始值,第二個(gè)顏色值是終止值*/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這是一個(gè)效果與兼容性俱佳的方式(特別對(duì)于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;/*這個(gè)很重要*/}#car{position:absolute;/*汽車在容器中采用絕對(duì)定位*/width:400px;height:210px;/*汽車的總高度,包括輪胎和底盤*/z-index:1;/*讓汽車在背景的上方*/top:300px;/*距頂端的距離(y軸)*/left:50px;/*距左側(cè)的距離(x軸)*/}/*車身*/#chassis{position:absolute;width:400px;height:130px;background:#FF9900;border:2pxsolid#FF6600;}/*輪胎*/.tire{z-index:1;/*同上,輪胎也應(yīng)置于背景的上方*/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);/*旋轉(zhuǎn)(單位:度)*/-ms-transform:rotate(0deg);-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);}#fronttire{right:20px;/*設(shè)置右邊的輪胎距離邊緣的距離為20*/}#backtire{left:20px;/*設(shè)置左邊的輪胎距離邊緣的距離為20*/}#grass{position:absolute;/*背景絕對(duì)定位在容器中*/width:100%;height:130px;bottom:0;/*讓背景色線性漸變,bottom,表示漸變的起始處,第一個(gè)顏色值是漸變的起始值,第二個(gè)顏色值是終止值*/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>
實(shí)現(xiàn)動(dòng)畫代碼(相當(dāng)簡(jiǎn)潔):
代碼如下:
<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={/*設(shè)置我們的起始點(diǎn)*/left:-400};varanimation={/*該動(dòng)畫由jQuery執(zhí)行*/left:1600/*設(shè)置我們將移動(dòng)到的最終位置*/};varrotate=function(){/*該方法將被旋轉(zhuǎn)的輪子調(diào)用*/rot+=2;$('.tire').css(prefix,'rotate('+rot+'deg)');};varoptions={/*將要被jQuery使用的參數(shù)*/easing:'linear',/*指定速度,此處只是線性,即為勻速*/duration:10000,/*指定動(dòng)畫持續(xù)時(shí)間*/complete:function(){$('#car').css(origin).animate(animation,options);},step:rotate};options.complete();});</script>
css動(dòng)畫怎么導(dǎo)出在手機(jī)和微信上能看的,感謝各位大佬了
作為一個(gè)工作多年的前端開發(fā),我來回答一下這個(gè)問題。
首先需要說明的是:css動(dòng)畫是無法導(dǎo)出的。在web中能直接導(dǎo)出動(dòng)畫模型的應(yīng)該只有webgl了。
隨著html5和css3的流行。傳統(tǒng)的dom動(dòng)畫可以不再依賴于js,CSS3給我們提供了兩種動(dòng)畫方式。
過渡動(dòng)畫transition我們只需要給要運(yùn)動(dòng)的元素添加一個(gè)transition屬性,設(shè)置時(shí)間,運(yùn)動(dòng)方式,運(yùn)動(dòng)屬性,延遲時(shí)間等。當(dāng)我們改變它的CSS屬性的時(shí)候,就是啟用當(dāng)前設(shè)置的動(dòng)畫。弊端是動(dòng)畫形式比較單一,優(yōu)勢(shì)是設(shè)置起來比較容易。
幀動(dòng)畫keyframes它可以實(shí)現(xiàn)一些比較復(fù)雜的動(dòng)畫。首先我們需要通過keyframesname{}的形式去定義一個(gè)動(dòng)畫。name為當(dāng)前的動(dòng)畫名稱,它里面可以設(shè)置N個(gè)動(dòng)畫幀。適合一些復(fù)雜的交互動(dòng)畫,它的弊端是創(chuàng)建幀動(dòng)畫的過程很繁瑣。好在在css3中,有一個(gè)很有名的動(dòng)畫庫(kù)
animation.css
里面提供了大量的動(dòng)畫,我們可以根據(jù)自己的需要選擇其中的動(dòng)畫、希望我的回答能幫助到你^_^
css按鈕如何忽大忽小閃爍
要讓CSS按鈕實(shí)現(xiàn)忽大忽小閃爍的效果,可以使用CSS3動(dòng)畫屬性(animation)??梢远x兩個(gè)不同的樣式,然后使用animation屬性設(shè)置樣式的切換和持續(xù)時(shí)間。通過將animation屬性應(yīng)用于按鈕,可以使其在兩個(gè)不同的樣式之間來回閃爍,實(shí)現(xiàn)忽大忽小閃爍的效果。具體的實(shí)現(xiàn)方法可以參考CSS3動(dòng)畫的相關(guān)指南或示例。
css動(dòng)畫用得多嗎
當(dāng)然css3會(huì)用的很多現(xiàn)在,而且還不少。不管是用以前jQuery寫的頁面還是用現(xiàn)代框架(比如Vue)寫的界面,都會(huì)用到大量css3,因?yàn)楹芏鄤?dòng)畫效果現(xiàn)在都不用jq來做了,用css3來寫這樣能提高性能效率。
css3和jq配合使用這樣能能快的提高開發(fā)效率。
如何用css制作動(dòng)畫效果
首先這個(gè)問題是一個(gè)web開發(fā)方面的專業(yè)性問題。我們拋開這個(gè)專業(yè)性,從題目中我們要弄清兩個(gè)名詞,什么是css,什么是動(dòng)畫
css:CascadingStyleSheets(層疊樣式表),是一種用來表現(xiàn)HTML或XML等文件樣式的計(jì)算機(jī)語言,在程序員眼中,甚至稱不上是語言。
動(dòng)畫:采用逐幀拍攝對(duì)象并連續(xù)播放而形成運(yùn)動(dòng)的影像技術(shù),計(jì)算機(jī)中的動(dòng)畫也是如此,逐幀播放,每一幀有個(gè)元素形態(tài),然后組合起來。
理解了上面的概念,我們?cè)偃フ務(wù)動(dòng)胏ss制作動(dòng)畫,css3之前的版本是不可能用純css制作動(dòng)畫,需要配合js一起才能制作,通過js控制元素每幀的形態(tài),直到css3這個(gè)版本出來,才有純css3制作一些常見的簡(jiǎn)單的動(dòng)畫,其中有3個(gè)動(dòng)畫屬性:變形(transform)、轉(zhuǎn)換(transition)和動(dòng)畫(animation),具體教程網(wǎng)上比較多,內(nèi)容解說代碼也比較多,這里省略,
下面說一下制作動(dòng)畫的步驟:一:自己要清楚自己所要做的動(dòng)畫的一個(gè)整體形態(tài),首先就是要建模二:拆分動(dòng)畫形態(tài),就是每幀的形態(tài),或者是一個(gè)時(shí)長(zhǎng)動(dòng)畫的開始和結(jié)束形態(tài),中間過程的變化形態(tài)。三:通過css動(dòng)畫屬性進(jìn)行編碼出這些形態(tài)。如果是復(fù)雜的,用css配合js編寫出來即可。
如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
本文鏈接:http://xinin56.com/ruanjian/910.html