整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          1分鐘,深度掌握H5動(dòng)效技能

          1分鐘,深度掌握H5動(dòng)效技能

          TML5在國(guó)內(nèi)一般稱為H5,指的是HTML5網(wǎng)頁(yè),比如前兩年大火的小游戲《圍住神經(jīng)貓,就是H5網(wǎng)頁(yè)的一種。近期比較出名還有看看新聞通過(guò)www.ih5.cn制作的H5《和宋仲基結(jié)婚合成器》,一天內(nèi)瀏覽量破250萬(wàn)。

          如果細(xì)心地觀察那些閱讀轉(zhuǎn)發(fā)破萬(wàn)的H5,它們除了本身極具特色的創(chuàng)意之外,排版與動(dòng)效功能的應(yīng)用也是恰到好處。

          所以今天我們就分別從【動(dòng)效】來(lái)給大家闡釋,如何讓自己創(chuàng)作的H5更具傳播性。

          ·

          如今的消費(fèi)者幾乎手機(jī)不離身,手機(jī)移動(dòng)端H5對(duì)公司宣傳的影響愈加明顯,可移動(dòng)端相對(duì)于PC端與紙媒等其他渠道而言,具有以下幾點(diǎn)特性:

          為了大大降低這些特征對(duì)H5內(nèi)容閱讀吸引力的影響,針對(duì)不同的問(wèn)題,我們可以在H5內(nèi)容中添加相對(duì)應(yīng)的動(dòng)效,以達(dá)到優(yōu)化的作用:

          1、動(dòng)效的作用

          總結(jié)而言,動(dòng)效對(duì)H5頁(yè)面的作用主要體現(xiàn)在兩個(gè)方面,分別為功能性以及趣味性

          功能性:

          (1)引導(dǎo)用戶進(jìn)行點(diǎn)擊、翻頁(yè)等動(dòng)作

          (2)吸引用戶并讓其做長(zhǎng)時(shí)間的視覺停留;

          趣味性:通過(guò)一些充滿趣味的特效,讓用戶的體驗(yàn)變得真正愉快以及難忘。

          2、動(dòng)效的類型

          在H5內(nèi)容展示中常見的動(dòng)效有:移位、旋轉(zhuǎn)、翻轉(zhuǎn)、縮放、逐楨、淡入淡出、粒子效果、3D等,而我們能大致地將這些動(dòng)效分為基礎(chǔ)特效、招牌特效以及高難度特效三種類別。

          (1)基礎(chǔ)動(dòng)效

          基礎(chǔ)動(dòng)效分為指向性動(dòng)效和空間展示動(dòng)效,具體表現(xiàn)在:

          指向性動(dòng)效——H5元素的出現(xiàn)、滑動(dòng)、彈出等

          空間展示動(dòng)效——頁(yè)面的切換、翻動(dòng)和放大。

          基礎(chǔ)動(dòng)效最重要的目的是要讓用戶感到毫無(wú)負(fù)擔(dān),順應(yīng)自然規(guī)律,此類動(dòng)效無(wú)需做到奪人眼球,而是要讓動(dòng)效舒服流暢。

          為了能讓大家更直觀地理解基礎(chǔ)特效的效果,不妨來(lái)看看下面這些關(guān)于動(dòng)效設(shè)計(jì)中的物理關(guān)系。

          首先,我們要理解“顏色是有重量的”,如下圖所示,隨著明度和飽和度的升高,顏色的重量在下降:

          此外,物理規(guī)律也是動(dòng)效考慮的關(guān)鍵因素。看起來(lái)舒服的動(dòng)效,一定是符合真實(shí)物理運(yùn)動(dòng)規(guī)律的,比如小球從上往下掉,加速運(yùn)動(dòng)要比勻速運(yùn)動(dòng)更符合人眼的認(rèn)知。

          (2)招牌動(dòng)效

          招牌動(dòng)效是基于基本動(dòng)作有選擇性的差異化展現(xiàn),就像一個(gè)個(gè)有個(gè)性的Pose,讓用戶眼前一亮,建立對(duì)界面的獨(dú)特印象。

          這類動(dòng)效目的是主要為了加深用戶印象,但需要注意夸張個(gè)性化的表現(xiàn),以及對(duì)于動(dòng)效節(jié)奏的把控。

          (3)高難度動(dòng)效

          高難度動(dòng)效主要的目的是為了加深用戶印象。如果運(yùn)用在H5中會(huì)很酷很炫,可以讓用戶做長(zhǎng)時(shí)間的視覺停留,但是也是起到錦上添花、畫龍點(diǎn)睛的作用,需要根據(jù)切實(shí)需要來(lái)進(jìn)行設(shè)計(jì)。

          有時(shí)候大家會(huì)覺得這些酷炫的動(dòng)效很難實(shí)現(xiàn),其實(shí)如果你仔細(xì)分析,會(huì)發(fā)現(xiàn)他們都是基礎(chǔ)動(dòng)效的排列組合。比如下面這兩個(gè)動(dòng)效,只要拆分成不同的層,就能發(fā)現(xiàn)其中只是不同層之間平移和縮放的組合。

          以上,僅是一些制作經(jīng)驗(yàn)和思路分享,不過(guò)具體的情況還得具體分析,排版與動(dòng)效的表現(xiàn)形式錯(cuò)綜復(fù)雜,只有找到合適自己創(chuàng)作風(fēng)格的才能打動(dòng)讀者。

          【附:HTML5制作,建議使用www.ih5.cn,國(guó)內(nèi)唯一提供可視化物理引擎、微信付費(fèi)點(diǎn)、微信紅包等功能的H5頁(yè)面制作云服務(wù)平臺(tái)?!?/strong>

          這是我的第一個(gè)基于Vue項(xiàng)目的作品,目的是把之前的前端知識(shí)累積加上目前流行的前端框架,以項(xiàng)目的形式展示出來(lái)。 大家在學(xué)習(xí)Vue的時(shí)候,可以將此項(xiàng)目作為學(xué)習(xí)Vue框架的一個(gè)模板

          效果圖

          這個(gè)最后做出來(lái)的效果圖

          實(shí)現(xiàn)功能

          • Goods、Ratings、Seller 組件視圖均可上下滾動(dòng)
          • 商品頁(yè) 點(diǎn)擊左側(cè)menu,右側(cè)list對(duì)應(yīng)跳轉(zhuǎn)到相應(yīng)位置
          • 點(diǎn)擊list查看商品詳情頁(yè),父子組件的通信
          • 評(píng)論內(nèi)容可以篩選查看
          • 購(gòu)物車組件,包括添加刪除商品及動(dòng)效,購(gòu)物控件與購(gòu)物車組件之間為兄弟組件通信,點(diǎn)擊購(gòu)物車圖標(biāo),展示已選擇的商品列表
          • 商家實(shí)景圖片可以左右滑動(dòng)
          • loaclStorage 緩存商家信息(id、name)

          使用的技術(shù)棧

          vue2.0 + vue-router + vue-cli + axios + stylus + flex布局 + es6 + eslint + webpack2 
          復(fù)制代碼
          

          項(xiàng)目目錄

          • app.vue
          • header.vue頭部組件
          • star.vue星星評(píng)分組件
          • goods.vue商品組件
          • shopcart.vue購(gòu)物車組件,包括小球飛入購(gòu)物車動(dòng)畫
          • cartcontrol.vue購(gòu)買加減圖標(biāo)控件--選中數(shù)量返回給父組件goods,goods響應(yīng)后,重新計(jì)算選中的數(shù)量,將數(shù)據(jù)發(fā)送給購(gòu)物車組件
          • food.vue商品詳情頁(yè)
          • ratingselect.vue評(píng)論內(nèi)容篩選組件
          • ratings.vue評(píng)論組件
          • seller.vue商家組件
          • split.vue關(guān)于分割線組件

          項(xiàng)目結(jié)構(gòu)

          common文件夾存放的是通用的css和fonts
          componets文件夾用來(lái)存放Vue組件
          router文件夾存放Vue組件
          build文件是webpack的打包編譯配置文件
          config文件夾存放的是一些配置項(xiàng),比如我們服務(wù)器訪問(wèn)的端口配置等
          dist該文件一開始是不存放,在項(xiàng)目經(jīng)過(guò)build之后才會(huì)生成
          Prod.server.js該文件是測(cè)試模擬的服務(wù)器配置,用來(lái)運(yùn)行dist里面的文件
          config/index.js中,build對(duì)象中添加一條端口設(shè)置port:9000
          App.vue根組件,所有的子組件都將在這里被引用
          Index.html整個(gè)項(xiàng)目的入口文件,將會(huì)引用我們的根組件App.vue
          Main.js入口文件的js邏輯,在webpack打包之后將被注入到index.html
          復(fù)制代碼
          

          搭建Vue的運(yùn)行環(huán)境

          1,首先是安裝node

          端開發(fā)框架和環(huán)境都是需要Node.js,先安裝node.js開發(fā)環(huán)境,vue的運(yùn)行是依賴于node的npm的管理工具來(lái)實(shí)現(xiàn)的,下載地址(nodejs.org/en/)

          2,查看node的版本號(hào)

          下載好node之后,打開cmd管理工具,輸入node -v,回車,查看node版本號(hào),出現(xiàn)版本號(hào)則說(shuō)明安裝成功

          node -v
          復(fù)制代碼
          

          3,安裝淘寶npm鏡像

          由于npm是國(guó)外的,使用起來(lái)比較慢,這里使用淘寶cnpm鏡像來(lái)安裝vue,淘寶的cnpm命令管理工具可以代替默認(rèn)的npm管理工具

          $ npm install -g cnpm --registry=https://registry.npm.taobao.org
          復(fù)制代碼
          

          4,安裝全局vue-cli腳手架

          淘寶鏡像安裝之后,我們就可以全局vue-cli腳手架,輸入命令:cnpm install -g vue-cli回車;驗(yàn)證是否安裝成功,在命令輸入vue,出來(lái)vue的信息,及說(shuō)明安裝成功

          cnpm install -g vue-cli
          復(fù)制代碼
          

          5,初始化項(xiàng)目

          Vue init webpack demo
          復(fù)制代碼
          

          (demo指的是你新建的項(xiàng)目名稱/文件名稱)

          6,運(yùn)行項(xiàng)目

          npm run dev
          復(fù)制代碼
          

          然后就會(huì)出來(lái)http://localhost:8080 把這個(gè)網(wǎng)址復(fù)制到瀏覽器中打開

          7,發(fā)布代碼

          npm run build
          復(fù)制代碼
          

          發(fā)布完代碼后會(huì)生成dist目錄,保存著項(xiàng)目的所有可運(yùn)行的代碼

          開發(fā)過(guò)程中重點(diǎn)問(wèn)題總結(jié)

          better-scroll

          Better-scroll可能是目前最好用的移動(dòng)端滾動(dòng)插件 插件在移動(dòng)端使用時(shí)需要設(shè)置 click:true,否則移動(dòng)端滑動(dòng)無(wú)效


          分開設(shè)置css樣式

          1,圖標(biāo)icon.css--文字圖標(biāo)樣式,通過(guò)icomoon.io網(wǎng)站,將svg圖片轉(zhuǎn)成文字圖標(biāo)樣式

          2,公共base.css--處理設(shè)備像素比的一些樣式,針對(duì)border-1px問(wèn)題,不同設(shè)備像素比,顯示的線條粗細(xì)不同

          3,工具mixin.css--設(shè)備border-1px樣式和背景樣式


          sticky-footer布局

          在這個(gè)項(xiàng)目的header組件的詳情頁(yè)采用stick-footer布局

          特點(diǎn):如果頁(yè)面內(nèi)容不夠長(zhǎng),頁(yè)腳塊粘貼在視窗底部; 如果內(nèi)容足夠長(zhǎng),頁(yè)腳塊會(huì)被內(nèi)容向下推送

          實(shí)現(xiàn):父級(jí) position:fixed,內(nèi)容設(shè)為padding-bottom:64px,頁(yè)腳相對(duì)定位,margin-top:-64px,clear:both為了保證兼容性,父級(jí)要清除浮動(dòng)


          要求自適應(yīng)布局

          1,左側(cè)寬度固定,右側(cè)寬度自適應(yīng)

          左側(cè)固定width:80px,右側(cè)自適應(yīng)

          parent:
           display:fiexd;
          child-left:
           flex:0 0 80px
          child-right:
          flex:1
          復(fù)制代碼
          

          2,元素寬度自適應(yīng)設(shè)備寬度,且元素要求等寬高樣式

          商品詳情頁(yè)面的商品圖片展示樣式

          .img_header {
           position:relative
           width:100% // width是 設(shè)備寬度
           height:0
           padding-top:100% // 高度設(shè)為0,使用padding撐開
           .img {
           position:absolute //定位布局
           top:0
           left:0
           width:100%
           height:100%
           }
          }
          復(fù)制代碼
          

          背景模糊效果

          filter:blur(10px)

          注意,所有在內(nèi)的子元素也會(huì)模糊,包括文字,所以采用定位布局,背景單獨(dú)占用一個(gè)層,ios有一個(gè)設(shè)置backdrop-filter:blur(10px),只會(huì)模糊背景,但不支持android

          transition過(guò)渡

          在購(gòu)買控件中使用transition過(guò)渡效果,實(shí)現(xiàn)添加減少按鈕的動(dòng)效,和小球飛入購(gòu)物車的動(dòng)效(模仿貝塞爾曲線的效果)

          name-String用于自動(dòng)生成css過(guò)渡類名

          name: 'fade' 將自動(dòng)拓展為.fade-enter,.fade-enter-active等。默認(rèn)類名為 "v"

          fade-enter
          fade-enter-active
          fade-leave
          fade-leave-active
          復(fù)制代碼
          

          seller組件

          問(wèn)題一:seller頁(yè)面中商品商家實(shí)景圖片橫向滾動(dòng)

          解決方案:每個(gè) li 要 display:inline-block,因?yàn)閣idth不會(huì)自動(dòng)撐開父級(jí)ul,所以需要將計(jì)算后的寬度賦值給ul的width,(每一張圖片的width+margin)*圖片數(shù)量-一個(gè)margin,因?yàn)樽詈笠粡垐D片沒(méi)有margin

          同時(shí)new BScroll里面要設(shè)置scrollX: true,eventPassthrough: 'vertical', // 滾動(dòng)方向橫向

          問(wèn)題二:打開seller頁(yè)面,無(wú)法滾動(dòng)

          問(wèn)題分析:出現(xiàn)這種現(xiàn)象是因?yàn)閎etter-scroll插件是嚴(yán)格基于DOM的,數(shù)據(jù)是采用異步傳輸?shù)?,?yè)面剛打開,DOM并沒(méi)有被渲染,所以,要確保DOM渲染了,才能使用 better-scroll,

          解決方案:用到mounted鉤子函數(shù),同時(shí)必須搭配this.$nextTick()

          問(wèn)題三:在seller頁(yè)面,刷新后,無(wú)法滾動(dòng)問(wèn)題分析:出現(xiàn)這種情況是因?yàn)閙ounted函數(shù)在整個(gè)生命周期中只會(huì)只行一次

          解決方案:使用watch方法監(jiān)控?cái)?shù)據(jù)變化,并執(zhí)行滾動(dòng)函數(shù) this._initScroll();this._initPicScroll();


          緩存數(shù)據(jù)

          //將頁(yè)面信息保存到localStorage里
          export function saveToLocal(id, key, value) {
           let seller=window.localStorage.__seller__;//新定義一個(gè)key值_store_,存放要保存的數(shù)據(jù)對(duì)象
           if (!seller) { // 不存在Seller
           seller={};
           seller[id]={};
           } else {
           seller=JSON.parse(seller);//string格式-->json格式
           if (!seller[id]) {
           seller[id]={};
           }
           }
           seller[id][key]=value;
           window.localStorage.__seller__=JSON.stringify(seller);//將json格式轉(zhuǎn)成String格式,存放到window.localStorage._store中
          };
          //將localStorage信息設(shè)置到頁(yè)面中
          export function loadFromLocal(id, key, def) {
           let seller=window.localStorage.__seller__;
           if (!seller) {//開始是沒(méi)有的,因?yàn)闆](méi)有點(diǎn)擊事件,所以顯示默認(rèn)數(shù)據(jù)
           return def;
           }
           seller=JSON.parse(seller)[id];//將json格式-->String格式
           if (!seller) {
           return def;
           }
           let ret=seller[key];
           return ret || def;
          };
          復(fù)制代碼
          

          goods,ratings,seller組件之間切換時(shí)會(huì)重新渲染

          在 app.vue 內(nèi)使用 keep-alive,保留各組件狀態(tài),避免重新渲染

          <keep-alive>
           <router-view :seller="seller"></router-view>
          </keep-alive>
          復(fù)制代碼
          

          vue-router

          使用<router-link>組件完成導(dǎo)航,<router-link> 默認(rèn)會(huì)被渲染成一個(gè) <a> 標(biāo)簽,但必須使用 to屬性,指定連接
          復(fù)制代碼
          // app.vue
           <!-- 導(dǎo)航 -->
          <router-link to="/home">home</router-link>
          <router-link to="/about">about</router-link>
          <!-- 路由出口 組件渲染容器 -->
          <router-view></router-view>
          復(fù)制代碼
          // router: index.js
          import Vue from 'vue';
          import Router from 'vue-router';
          import goods from 'components/goods/goods.vue';
          import ratings from 'components/ratings/ratings.vue';
          import seller from 'components/seller/seller.vue';
          Vue.use(Router);
          const routes=[{
           path: '/',
           redirect: '/goods'
          }, {
           path: '/goods',
           component: goods
          }, {
           path: '/ratings',
           component: ratings
          }, {
           path: '/seller',
           component: seller
          }];
          復(fù)制代碼
          

          axios

          在vue1.x的時(shí)候,vue的官方推薦HTTP請(qǐng)求工具是vue-resource,但是在vue2.0的時(shí)候?qū)⑼扑]工具改成了axios


          組件間通訊

          vue是組件式開發(fā),所以組件間通訊是必不可少的

          • 父?jìng)髯? props
          • 子傳父: $emit
          • 兄弟通訊
           event bus: 利用一個(gè)中間組件來(lái)作為信息傳遞中介
           vuex: 信息樹
          復(fù)制代碼
          

          父?jìng)髯? props

          子組件定義 props 來(lái)接受父組件傳遞來(lái)的數(shù)據(jù)對(duì)象

          // 父組件
          <v-header :seller="seller"></v-header>
          // 子組件 header.vue
          props: {
           seller: {
           type: Object
           }
          }
          復(fù)制代碼
          

          子傳父: $emit

          如果是子組件想傳遞數(shù)據(jù)給父組件,需要派發(fā)自定義事件,使用 $emit 派發(fā)

          父組件使用v-on接收監(jiān)控(v-on可以簡(jiǎn)寫成@)

          // 子組件 ratingSelect.vue,派發(fā)自定義事件select,將type數(shù)據(jù)傳給父級(jí)
          this.$emit('select', type);
          this.$emit('toggle', this.onlyContent2);
          // 父組件 food.vue 在子組件的模板標(biāo)簽里,使用v-on監(jiān)控toggleContent傳過(guò)來(lái)的數(shù)據(jù)
          <ratingselect @select="selectRating" @toggle="toggleContent"></ratingselect>
          復(fù)制代碼
          

          非父子組件之間通信

          1,大型項(xiàng)目可以用 Vue官方推薦的vuex

          2,EventBus

          3,子組件A $emit 派發(fā)具體事件,由父組件 @ 監(jiān)聽得到數(shù)據(jù)

          父組件再利用 $refs 直接訪問(wèn)子組件B的方法,間接實(shí)現(xiàn)數(shù)據(jù)從子組件A傳遞至子組件B


          組件提取管理

          將相同樣式或功能的區(qū)塊單獨(dú)提出來(lái),作為一個(gè)組件。 另外組件中用到的圖片等資源就近維護(hù),即可以考慮在組件文件夾中新建images文件夾。

          抽離組件遵循原則: 要盡量遵循單一職責(zé)原則,復(fù)用性更高,不要設(shè)置額外的margin等影響布局的東西


          打開app應(yīng)用,默認(rèn)顯示 goods 頁(yè)面內(nèi)容

          想默認(rèn)顯示goods頁(yè)面內(nèi)容,有兩種方法,一種是利用重定向,另一種是利用vue-router的導(dǎo)航式編程

          1,重定向

           routes: [
           {
           path: '/',
           redirect: '/goods' //重定向
           },
           {
           path: '/goods',
           name: 'goods',
           component: goods
           },{
           path: '/ratings',
           name: 'ratings',
           component: ratings
           },{
           path: '/seller',
           name: 'seller',
           component: seller
           }
           ]
          復(fù)制代碼
          

          2,導(dǎo)航式編程

          router.push('/Goods');
          復(fù)制代碼
          

          關(guān)于ESlint

          eslint 是一個(gè)js代碼風(fēng)格檢查器,配合vue-cli腳手架中的熱更新,可以很方便的定位和提示錯(cuò)誤。在公司多人協(xié)作開發(fā)時(shí)可以確保代碼風(fēng)格保持一致,可以很方便的閱讀他人的代碼

          手機(jī)訪問(wèn)項(xiàng)目

          1、在config文件夾中的index.js中的host選項(xiàng),將本地localhost改為0.0.0.0

          2、在cmd中輸入ipconfig查看本地IP,

          3、在瀏覽器中輸入IP地址

          4、端口號(hào)訪問(wèn)(http://192.168.0.110:8080),將這個(gè)網(wǎng)址復(fù)制到網(wǎng)頁(yè)版“草料二維碼”中,用QQ掃碼訪問(wèn)即可

          者按:今天@不到布同學(xué)分享一款特別方便的神器,操作過(guò)程易學(xué)好懂,基本上可以解決現(xiàn)有所有的CSS動(dòng)畫需求,有具體的教程呦,趕緊給自己補(bǔ)上這課吧。

          @不到布:自從CSS3引入了動(dòng)畫(transition和@keyframes,還有與之搭配的transform)之后,各路人馬對(duì)它的熱情都極為高漲,和JS動(dòng)畫相比,它寫起來(lái)更簡(jiǎn)單(在沒(méi)有jQuery庫(kù)的情況下),同時(shí)在大多數(shù)情況下性能上也有很強(qiáng)的優(yōu)勢(shì)。transition和transform相對(duì)比較簡(jiǎn)單,除了矩陣變換(一般人也用不到)之外,別的都易學(xué)好懂,而使用了@keyframes的動(dòng)畫,簡(jiǎn)直就是設(shè)計(jì)師和工程師的大殺器,關(guān)于這東西有多殺,可以參考之前騰訊的大神們搞的一個(gè)CSS3動(dòng)畫幀數(shù)科學(xué)計(jì)算法(http://tid.tenpay.com)這樣的玩意兒,內(nèi)含計(jì)算器(http://tid.tenpay.com)一枚,內(nèi)文之糾結(jié)復(fù)雜,我相信一般兼職半個(gè)前端的大設(shè)計(jì)或者初入行的小前端都是難以看懂的…

          而且其實(shí)主要問(wèn)題是,那玩意兒是為步進(jìn)動(dòng)畫準(zhǔn)備的,做一張精靈圖,然后每隔一定時(shí)間跳一張…其實(shí)這樣算不上一個(gè)真正的css動(dòng)畫,何況animation屬性中的steps()功能可以比較好地解決這個(gè)問(wèn)題。而一直以來(lái),都沒(méi)有一個(gè)好的css動(dòng)畫生成工具(別跟我提Muse,它需要閱讀《工具的自我修養(yǎng)》…)所以今天我想推薦的就是這個(gè)Stylie(http://jeremyckahn),一個(gè)可視化自動(dòng)生成CSS3動(dòng)畫的工具。

          Stylie操作簡(jiǎn)介

          頁(yè)面打開以后很簡(jiǎn)單,藍(lán)色的網(wǎng)格背景上面,兩個(gè)綠色的十字中間連著一根黃色的線,上面有一個(gè)白色小球不斷地從左邊滑動(dòng)到右邊(還稱不上滾動(dòng)),下面有一個(gè)進(jìn)度條,右邊有一個(gè)操作面板。

          圖片來(lái)自Tuts+

          Keyframes標(biāo)簽面板

          • 第一個(gè)0ms處表示起點(diǎn)相關(guān)信息,第二個(gè)2000ms處表示2000ms處斷點(diǎn)的相關(guān)信息;

          • 2000ms可以單擊修改它的時(shí)間,單擊右上角的加號(hào)可以添加新的斷點(diǎn)

          • X和Y分別表示橫坐標(biāo)及縱坐標(biāo)(其實(shí)你也可以用鼠標(biāo)去拖綠色的十字…);

          • S表示縮放倍率(默認(rèn)是1);

          • rX、rY、rZ分別表示物體沿X、Y、Z軸的旋轉(zhuǎn)角度(具體哪個(gè)軸是哪個(gè)可以在上面填寫數(shù)字自己嘗試,出于便于觀察的理由建議填寫180。當(dāng)然你也可以按住Shift鍵,拖,但是我覺得這樣很不好控制…);

          • linear表示線性的…這一欄是自定義緩動(dòng)曲線(Easing curves)

          緩動(dòng)曲線

          這個(gè)工具比較流弊刷刷的一點(diǎn)就在于它的緩動(dòng)曲線功能,所有的數(shù)值,都!可!以!定義緩動(dòng)。下面我稍微說(shuō)一下它的緩動(dòng):

          1. In和Out分別代表進(jìn)入時(shí)和結(jié)束時(shí),緩動(dòng)顧名思義就是有一個(gè)類似“緩沖”的動(dòng)作,如同汽車加速是慢慢加起來(lái)的,人跑步也是慢慢停下的(急剎車也是很難從高速直接降速到靜止的,總有個(gè)減速的過(guò)程)。

          2. Quad – x^2(二次方曲線)

          3. Cubic – x^3(三次方曲線)

          4. Quart – x^4(四次方曲線)

          5. Quint – x^5(五次方曲線)

          6. Sine – sin(x^(pi/2))(長(zhǎng)相有點(diǎn)像二次方曲線,實(shí)際上這個(gè)函數(shù)很奇葩,有興趣的童鞋可以移步這里(http://t.cn/RhdkXQC)看一下[0,3]的圖像…)

          7. Expo – 2^(10(x-1))(我放棄起名字了,總之是一個(gè)開始非常非常慢,中后期非常非??斓臇|西)

          8. Circ – 顧名思義就是?。?/4圓,如果選擇了InOut就是兩個(gè)外切的1/4圓)

          9. Bounce – 公式太長(zhǎng)不寫了,就是個(gè)反彈曲線(彈簧效果、小球落地)

            v10. Back -反彈曲線

          10. elastic – 橡皮筋曲線(有一個(gè)非常短暫且巨大的晃動(dòng),然后緩緩結(jié)束)

          11. swing – 跟Back系列一樣

          12. 后面的就沒(méi)什么了,最后一個(gè)為CustomEasing,這個(gè)曲線可以自己在Motion選項(xiàng)卡中編輯,經(jīng)常用AI的童鞋可能比較容易編輯,但是不理解曲線跟運(yùn)動(dòng)速度之間的關(guān)系的話,就根本搞不懂自己在編輯什么…

          上面說(shuō)了那么多曲線…它其實(shí)代表的就是一個(gè)速率的變化(可以把起點(diǎn)和終點(diǎn)放在非水平或垂直的同一條直線位置上,然后改變X和Y的Easing Curves,本質(zhì)上它和我們初高中物理課上畫的那些撞車線拋物線沒(méi)什么不同…)。對(duì)于那些想預(yù)覽簡(jiǎn)單微小動(dòng)效的人來(lái)說(shuō),可以把起點(diǎn)和終點(diǎn)放在比較近的位置上,然后改變Easing curves察看效果。

          導(dǎo)出代碼

          效果滿意之后,就可以點(diǎn)擊CSS和HTML標(biāo)簽分別復(fù)制代碼了。

          CSS標(biāo)簽中可以為這個(gè)動(dòng)畫自定義名字,并選擇瀏覽器兼容性(默認(rèn)為W3C,如果你家要考慮兼容其實(shí)還不如不要做(對(duì)我說(shuō)的就是那誰(shuí),你們懂)…兼容手機(jī)的話可以考慮勾上Webkit)。Orient generated CSS to的意思是說(shuō)所有的位移數(shù)據(jù)采用相對(duì)(第一幀的)位移,還是絕對(duì)定位(相對(duì)于左上角)。最下面的滑塊,最左邊是最少代碼,右邊是最高質(zhì)量,最小代碼可能會(huì)在某些情況下引發(fā)意想不到的問(wèn)題,但是通常情況下沒(méi)啥事…

          HTML標(biāo)簽就沒(méi)啥東西了,你可以修改其中的html代碼來(lái)查看你自定義的內(nèi)容效果(默認(rèn)只有一個(gè)圖片,就是那個(gè)白色的圓…)

          最后在右邊的扳手標(biāo)簽里,你可以選擇保存或讀取你的動(dòng)畫。

          差不多就是這樣了,這個(gè)神器基本上可以解決現(xiàn)有所有的CSS動(dòng)畫需求,具體怎么做就看各人的實(shí)力(yun qi) 了。


          主站蜘蛛池模板: 久久久国产精品亚洲一区 | 午夜视频一区二区| 无码免费一区二区三区免费播放| 日本一区二区三区免费高清| 日本一区二区在线播放| 日韩精品午夜视频一区二区三区| 日韩视频一区二区| 一区二区在线视频| 国产福利一区二区三区在线视频| 中文字幕无线码一区2020青青| 波多野结衣一区二区| 色屁屁一区二区三区视频国产| 国产激情一区二区三区| 国产日韩精品视频一区二区三区| 国产伦精品一区二区三区无广告| 国产精品区AV一区二区| 亚洲一区免费在线观看| 日韩一区二区在线观看| 亚洲大尺度无码无码专线一区 | 亚洲综合一区二区| 日本精品一区二区三区四区| 精品亚洲A∨无码一区二区三区| 亚洲国产精品一区二区第四页| 四虎成人精品一区二区免费网站 | 丰满人妻一区二区三区免费视频| 国产精品日本一区二区不卡视频| 亚洲福利视频一区| 香蕉在线精品一区二区| 在线电影一区二区| 精品欧洲av无码一区二区三区| 日韩AV在线不卡一区二区三区| 国产精品高清一区二区三区不卡| 国产精品亚洲不卡一区二区三区 | 能在线观看的一区二区三区| 色综合视频一区中文字幕| 无码乱码av天堂一区二区 | 久久久综合亚洲色一区二区三区 | 精品在线视频一区| 香蕉免费看一区二区三区| 久夜色精品国产一区二区三区| 中文字幕久久久久一区|