javascript?中動畫制作方法?animate()屬性
animate是個非常冷門的方法,以至于百度和手冊上都找不到相關的資料。當然通過一個小小的demo,我還是發(fā)現(xiàn)了方法的一些屬
animate是所有dom元素都有的方法,可以用來最做過度動畫,關鍵幀動畫。這個方法可以更方便的讓我們制作動
animate共有兩個參數(shù) (很可惜似乎沒有回調函數(shù),沒發(fā)現(xiàn))
關鍵幀 (參數(shù)可以是數(shù)組或對象,數(shù)組內包裹的也必須是對象)
對象里的屬性就是css屬性和值了
動畫屬性設置 {參數(shù)數(shù)字或者對象}
目前發(fā)現(xiàn)的屬性有以下 :
- duration: 動畫時長 (單位毫秒)
- iterations :重復次數(shù)(默認1) 數(shù)字 (無限循環(huán):‘Infinity’) [非必須]
- fill :結束時復位 [不復位:forwards, 復位(默認值):none] [非必須]
- delay : 設置動畫延遲時長 (單位毫秒) [非必須]
- easing :設置動畫 運動速率 [esse(默認):慢-快-慢 ,linear: 勻速, ease-in: 慢-勻速, ease-in-out 慢-勻速-慢] [非必須]
通過兩個案例說明一下:
過度動畫即第一個參數(shù)直接為對象{}
<div id="box" style=”width: 200px;height: 200px;background: red;border-radius:50% 50% 0 0;”></div>
<script>
// 獲取元素對象
var box = document.getElementById("box");
box.animate(
{ // 對象
transform:'rotate(360deg)'
},
{
duration: 1000, // 動畫時長 (單位毫秒)
easing:'linear', // 平滑
iterations: Infinity, // 重復次數(shù) (無限循環(huán):Infinity)
},
);
</script>
第二個小盒子移動,第一個參數(shù)是數(shù)字,數(shù)組包裹著對象(每個對象就算一個關鍵幀)[{},{}]
<style type="text/css">
#box{
width: 200px;
height: 200px;
background: red;
position: absolute;
border-radius:50% 50% 0 0;
}
</style>
<div id="box"></div>
<script>
box.animate(
[ //關鍵幀(數(shù)組包裹對象)
{transform:'translate3d(0px, 0px, 0)',opacity:'1'}, // 第一幀
{transform:'translate3d(50px, 0px, 0)',opacity:'.8'}, // 第二幀
{transform:'translate3d(150px, 100px, 0)',opacity:'.5'}, // 第三幀
],
{
duration: 1000, // 動畫時長 (單位毫秒)
iterations: 1, // 重復次數(shù) (無限循環(huán):Infinity)
fill:'forwards', //結束時不復位
delay:0, // 設置動畫延遲時長 (單位毫秒)
easing:'linear' //設置動畫 運動速率 (linear: 勻速)
},
);
</script> 到此這篇關于javascript 中動畫制作方法 animate()屬性的文章就介紹到這了,更多相關javascript animate()屬性內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
onmouseover事件和onmouseout事件全面理解
最近兩天在溫習onmouseover事件和onmouseout事件,其實里面有很多深奧的知識,接下來小編給大家?guī)砹薿nmouseover事件和onmouseout事件全面了解,感興趣的朋友一起看下2016-08-08
使用JSX實現(xiàn)Carousel輪播組件的方法(前端組件化)
做這個輪播圖的組件,我們先從一個最簡單的 DOM 操作入手。使用 DOM 操作把整個輪播圖的功能先實現(xiàn)出來,然后在一步一步去考慮怎么把它設計成一個組件系統(tǒng)2021-04-04

