推薦三兩款前端動畫庫,anitmate.css, velocity-animate, anime,

在最近一段時間的工做裏,經常用到動畫,我主要接觸了三個css

animate.css
anime
velocityvue

下面分析一下他們的優缺點react

animate.css

優勢:
animate.css主要是使用css實現動畫效果,目前已經有幾十種預約義的動畫,使用起來很是簡便,基本上都能找到咱們想要的動畫效果,經過給dom結構添加相應的類.animated .動效類這個dom就擁有了動效。是否是很是的簡單。
API(僞裝是正確的翻譯) jquery

fade: {
        title: '淡入淡出',
        fadeIn: '淡入',
        fadeInDown: '向下淡入',
        fadeInDownBig: '向下快速淡入',
        fadeInLeft: '向右淡入',
        fadeInLeftBig: '向右快速淡入',
        fadeInRight: '向左淡入',
        fadeInRightBig: '向左快速淡入',
        fadeInUp: '向上淡入',
        fadeInUpBig: '向上快速淡入',
        fadeOut: '淡出',
        fadeOutDown: '向下淡出',
        fadeOutDownBig: '向下快速淡出',
        fadeOutLeft: '向左淡出',
        fadeOutLeftBig: '向左快速淡出',
        adeOutRight: '向右淡出',
        fadeOutRightBig: '向右快速淡出',
        fadeOutUp: '向上淡出',
        fadeOutUpBig: '向上快速淡出'
      },
      bounce: {
        title: '彈跳類',
        bounceIn: '彈跳進入',
        bounceInDown: '向下彈跳進入',
        bounceInLeft: '向右彈跳進入',
        bounceInRight: '向左彈跳進入',
        bounceInUp: '向上彈跳進入',
        bounceOut: '彈跳退出',
        bounceOutDown: '向下彈跳退出',
        bounceOutLeft: '向左彈跳退出',
        bounceOutRight: '向右彈跳退出',
        bounceOutUp: '向上彈跳退出'
      },
      zoom: {
        title: '縮放類',
        zoomIn: '放大進入',
        zoomInDown: '向下放大進入',
        zoomInLeft: '向右放大進入',
        zoomInRight: '向左放大進入',
        zoomInUp: '向上放大進入',
        zoomOut: '縮小退出',
        zoomOutDown: '向下縮小退出',
        zoomOutLeft: '向左縮小退出',
        zoomOutRight: '向右縮小退出',
        zoomOutUp: '向上縮小退出'
      },
      rotate: {
        title: '旋轉類',
        rotateIn: '順時針旋轉進入',
        rotateInDownLeft: '從左往下旋入',
        rotateInDownRight: '從右往下旋入',
        rotateInUpLeft: '從左往上旋入',
        rotateInUpRight: '從右往上旋入',
        rotateOut: '順時針旋轉退出',
        rotateOutDownLeft: '向左下旋出',
        rotateOutDownRight: '向右下旋出',
        rotateOutUpLeft: '向左上旋出',
        rotateOutUpRight: '向右上旋出'
      },
      flip: {
        title: '翻轉類',
        flipInX: '水平翻轉進入',
        flipInY: '垂直翻轉進入',
        flipOutX: '水平翻轉退出',
        flipOutY: '垂直翻轉退出'
      },
      strong: {
        title: '強調類',
        bounce: '彈跳',
        flash: '閃爍',
        pulse: '脈衝',
        rubberBand: '橡皮筋',
        shake: '左右弱晃動',
        swing: '上下襬動',
        tada: '縮放擺動',
        wobble: '左右強晃動',
        jello: '拉伸抖動'
      }

使用栗子git

$('#yourElement').addClass('animated bounceOutLeft');

缺點:github

一、animated.css 官方提供了幾十種動效,可是總會遇到一些動效可能須要修改,或者有些動效他名沒有提供。這個時候,animate.css就顯得有點吃力了,由於目前沒提供自定義的動畫apiapi

二、假如咱們dom結構已經有 tranform或者其餘相關的css設置,這個時候經過添加animted的動畫類,那麼咱們原來的css效果會 被覆 蓋。解決方案只能是在dom的外圍再用一個div.wrap包含着 而後把動畫效果加載.wrap中來避免覆蓋原有效果,相關討論issuedom

velocity

優勢:svg

一、Velocity 是一個簡單易用、高性能、功能豐富的輕量級JS動畫庫。它能和 jQuery 完美協做,並和$.animate()有相同的 API, 但它不依賴 jQuery,可單獨使用。 Velocity 不只包含了 $.animate() 的所有功能, 還擁有:顏色動畫、轉換動畫(transforms)、循環、 緩動、SVG 動畫、和 滾動動畫 等特點功能
支持原生js,jq,react寫法,做爲vue粉,失望的是,他暫時沒有vue相關的插件
2.也有幾十種相似animate.css的預約義動畫api
3.支持自定義動效,拼裝隊列動效等等
4.動畫回調 好比 Begin & Complete & Progress 回調函數
中文文檔請點擊
缺點:
1.其實我以爲對我而言,知足我各類需求,沒啥缺點,要必定得揪點的話,我能說api demo 不夠多,須要本身多嘗試各類組裝。
2.目前不少童鞋比較少去用jquery的狀況下,Velocity就喪失了不少有點,好比他自定義的動畫就是結合Velocity-ui + jq函數

anime

anime.js(/ˈæn.ə.meɪ/)是一個輕量、靈活的JavaScript 動畫庫.他能夠配合css,svg,Dom節點和js對象工做。
其實用了velocity的人大可沒必要再去用anime 由於anime擁有的,而且velocity兼容性要比anime
可是恰巧我用了。。。因此就說說吧
優勢:
1.可自定義動畫效果,支持隊列動效
2.支持begin, run, update, complete回調函數
3.支持動畫的play(),pause(),restart()等等功能
缺點:
1.缺乏自定義特效
2.文檔demo比較少

使用遇到的小問題:
1.默認不是勻速的,須要設置 easing: 'liner'

(詳細整理待續)

相關文章
相關標籤/搜索