亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

用Vue+CSS3怎么做交互特效

2020-03-24 16:55:43
字體:
來源:轉載
供稿:網友
我們知道,做項目的時候一定會用到交互效果或者特效,我曾開發郭一個項目一直在用Vue.開發技術棧方面就用了Vue+CSS3,過程中發現vue+css3開發特效很好用,今天就給大家帶來這樣一份教程。

 

1.文章上面的代碼,雖然代碼很簡單,不難理解,但是也是建議大家邊寫邊看,這樣不會混亂。
2.文章所提及的小實例,都是很基礎的,大家可以參照自己的想法進行擴展,或者修改,可能會有意想不到的效果。我寫這類型的文章也是想授人以漁,不是授人以魚!
3.這幾個實例,摘自我自己的平常練習的項目,代碼已經提到github上面了(vue-demos)。歡迎大家star。

2.開場小動畫

原理分析

說到原理分析,其實也沒什么可以分析的,就是在頁面是下面這個狀態的時候,把文字替換掉。至于看到字體縮成一團,就是letter-spacing這個html' target='_blank'>css屬性的控制效果。字體模糊就是filter: blur()這個css屬性的控制效果!看到有逐漸的變化,就是css3動畫(animation)的效果

下面簡單分析下,這個動畫的幾個步驟,從下面看到,這個動畫一共8個步驟。

這下就清晰明了了,我們要在下圖這個瞬間開始改變文字,也就是頁面加載了兩秒后,動畫執行了兩次后就開始改變文字。然后每隔兩秒改變一次文字,直到最后!

下面給出vue和javascript兩種方式的代碼,看下哪種方式更加的簡單!

vue方式

 !DOCTYPE html html lang= en head meta charset= UTF-8 title Title /title /head style body{ background: #ccc; } h1 { color: white; text-transform: uppercase; margin-top: 100px; text-align: center; font-size: 6rem; line-height: 1; animation: letterspacing 1s 7 alternate ease-in-out; display: block; letter-spacing: .5rem; } @keyframes letterspacing { 0% { letter-spacing: -72px; filter: blur(20px); } 40% { filter: blur(6px); } 80% { letter-spacing: 8px; filter: blur(0); } } /style body div id= text h1 {{testText}} /h1 /div /body script src= vue.min.js /script script type= text/javascript new Vue({ el: #text , data:{ nowIndex:0, testText: 歡迎瀏覽 }, mounted(){ let _this=this; let timer = setInterval(function(){ _this.nowIndex++; switch (_this.nowIndex) { case 1: _this.testText = 守候的文章 break; case 2: _this.testText = 愿您瀏覽愉快 break; case 3: _this.testText = 學到知識 break; } if (_this.nowIndex 3) { setTimeout(() = { clearInterval(timer); }, 2000) } }, 2000) } }) /script /html 

javascript方式

 !DOCTYPE html html lang= en head meta charset= UTF-8 title Title /title /head style body{ background: #ccc; } h1 { color: white; text-transform: uppercase; margin-top: 100px; text-align: center; font-size: 6rem; line-height: 1; animation: letterspacing 1s 7 alternate ease-in-out; display: block; letter-spacing: .5rem; } @keyframes letterspacing { 0% { letter-spacing: -6rem; filter: blur(1rem); } 40% { filter: blur(.3rem); } 80% { letter-spacing: .5rem; filter: blur(0rem); } } /style body div id= text h1 歡迎瀏覽 /h1 /div /body script var oH1=document.querySelector( h1 ),nowIndex=0; console.log(oH1) var timer = setInterval(function () { nowIndex++; switch (nowIndex) { case 1: oH1.innerHTML = 守候的文章 break; case 2: oH1.innerHTML = 愿您瀏覽愉快 break; case 3: oH1.innerHTML = 學到知識 break; } if (nowIndex 3) { setTimeout(() = { clearInterval(timer); }, 2000) } }, 2000) /script /html 

3.導航滑塊

運行效果

原理分析

首先,下面是頁面初始化的時候,橙色滑塊的位置

鼠標放到第二個tab上面,大家可以看到,橙色滑塊就是向右偏移了一個tab的距離

鼠標放到第三個tab上面,大家可以看到,橙色滑塊就是向右偏移了兩個tab的距離

如果從第一個tab到第六個tab的索引是0,1,2,3,4,5。

那么滑塊的公式就是(索引*tab的寬度)。大家看到有逐漸過去的效果,其實是css3過渡(transition)的效果。大家看下面的代碼就行了,一看就懂!代碼如下:

vue方式

 !DOCTYPE html html lang= en head meta charset= UTF-8 title Title /title /head link rel= stylesheet href= reset.css style .nav{ margin: 40px; position: relative; } .nav li{ float: left; width: 100px; height: 40px; line-height: 40px; color: #fff; text-align: center; background: #09f; cursor: pointer; } .nav span{ position: relative; z-index: 2; } .nav .slider{ position: absolute; transition: all .5s cubic-bezier(0.4, -0.3, 0.57, 1.38); width: 100px; height: 40px; background: #f90; top: 0; left: 0; z-index: 1; } /style body div >

javascript方式

 !DOCTYPE html html lang= en head meta charset= UTF-8 title Title /title /head link rel= stylesheet href= reset.css style .nav{ position: relative; } .nav li{ float: left; width: 100px; height: 40px; line-height: 40px; color: #fff; text-align: center; background: #09f; cursor: pointer; } .nav span{ position: relative; z-index: 2; } .nav .slider{ position: absolute; transition: all .5s cubic-bezier(0.4, -0.3, 0.57, 1.38); width: 100px; height: 40px; background: #f90; top: 0; left: 0; z-index: 1; } /style body div >

4.輪播圖

藍框的是li,黑框的是div

看到上面,其實也就是控制ul的偏移量(transform:translate3d)。計算公式和上面的滑塊相似,索引(0|1|2|3)*li的寬度。不同的就是,ul的偏移量是取負數,因為ul是想左偏,上面的滑塊是向右偏! 當第一張圖片的時候,ul偏移量設置(transform: translate3d(0px, 0px, 0px))。 當第二張圖片的時候,ul偏移量設置(transform: translate3d(-1000px, 0px, 0px))。 當第二張圖片的時候,ul偏移量設置(transform: translate3d(-2000px, 0px, 0px))。以此類推,偏移量很簡單的就能計算出來!

可能我說的大家有點懵,但是,看下面的代碼,就不會懵了,因為代碼也很簡單!

vue方式

 !DOCTYPE html html lang= en head meta charset= UTF-8 title Title /title link rel= stylesheet href= reset.css style .slide-img { width: 1000px; height: 500px; overflow: hidden; position: relative; margin: 20px auto; } ul { transition: all .5s ease; } li { float: left; } .slide-arrow div { width: 50px; height: 100px; position: absolute; margin: auto; top: 0; bottom: 0; background: url( http://i1.bvimg.com/1949/4d860a3067fab23b.jpg ) no-repeat; } .arrow-right { transform: rotate(180deg); right: 0; } .arrow-left { left: 0; } .slide-option{ position: absolute; bottom: 10px; width: 100%; left: 0; text-align: center; } .slide-option span{ display: inline-block; width: 14px; height: 14px; border-radius: 100%; background: #ccc; margin: 0 10px; } .slide-option .active{ background: #09f; } /style /head body div >

javascript方式

 !DOCTYPE html html lang= en head meta charset= UTF-8 title Title /title link rel= stylesheet href= reset.css style .slide-img { width: 1000px; height: 500px; overflow: hidden; position: relative; margin: 20px auto; } ul { transition: all .5s ease; } li { float: left; } .slide-arrow div { width: 50px; height: 100px; position: absolute; margin: auto; top: 0; bottom: 0; background: url( http://i1.bvimg.com/1949/4d860a3067fab23b.jpg ) no-repeat; } .arrow-right { transform: rotate(180deg); right: 0; } .arrow-left { left: 0; } .slide-option{ position: absolute; bottom: 10px; width: 100%; left: 0; text-align: center; } .slide-option span{ display: inline-block; width: 14px; height: 14px; border-radius: 100%; background: #ccc; margin: 0 10px; } .slide-option .active{ background: #09f; } /style /head body div >

5.小結

好了,關于vue+css3開發的特效,以及和javascript+css3的對比,就說到這里了,希望這三個小實例,能幫到大家了解下應該怎么使用vue+css3開發特效的。今天講這三個小實例不是說給大家代碼,讓大家復制粘貼使用,而是希望能起到一個拋磚引玉的作用,拓展思維的作用!就像我之前寫文章說得那樣,我寫文章是希望能起到一個授人以漁的作用,而不是授人以魚!最后,如果大家覺得有什么地方我寫錯了,寫錯不好,或者有其它什么建議,歡迎指出!讓大家相互學習,共同進步!

相信看了這些案例你已經掌握了方法,更多精彩請關注php 其它相關文章!

 

相關閱讀:

CSS3的loading特效怎么制作

CSS的編碼怎么轉換

怎樣用canvas做出粒子噴泉動畫的效果

以上就是用Vue+CSS3怎么做交互特效的詳細內容,html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线丨暗呦小u女国产精品| 久久久999精品免费| 久久亚洲欧美日韩精品专区| 亚洲一区二区三区香蕉| 上原亚衣av一区二区三区| 欧美在线免费视频| 国产一区二区日韩精品欧美精品| 国产性猛交xxxx免费看久久| **欧美日韩vr在线| 久久人人爽人人爽人人片av高清| 久久香蕉精品香蕉| 欧美噜噜久久久xxx| 激情亚洲一区二区三区四区| 亚洲国产精品成人av| 亚洲人成欧美中文字幕| 不卡av日日日| 中文字幕少妇一区二区三区| 中文字幕亚洲一区二区三区| 精品久久久久人成| 久久夜色精品国产亚洲aⅴ| 精品亚洲精品福利线在观看| 亚洲一区二区三区四区视频| 久久久久久久999| 在线亚洲午夜片av大片| 少妇av一区二区三区| 在线观看亚洲视频| 欧美尤物巨大精品爽| 日韩av在线网站| 国产女同一区二区| 成人福利网站在线观看11| 国产精品久久久久久久7电影| 久久乐国产精品| 精品无码久久久久久国产| 亲子乱一区二区三区电影| 亚洲国产精品大全| 精品自在线视频| 成人网在线免费观看| 亚洲a区在线视频| 亚洲精品成a人在线观看| 97香蕉超级碰碰久久免费软件| 久久色在线播放| 色狠狠久久aa北条麻妃| 伦伦影院午夜日韩欧美限制| 亚洲加勒比久久88色综合| 国产成人精品av在线| 亚洲精品xxxx| 欧美中文字幕第一页| 热久久视久久精品18亚洲精品| 88国产精品欧美一区二区三区| 97色在线视频| 亚洲精品国产精品久久清纯直播| 日韩精品999| 日本精品免费一区二区三区| 国产精品96久久久久久| 欧美专区在线视频| 日韩中文字幕在线免费观看| 久久国产视频网站| 97视频免费在线看| 精品香蕉一区二区三区| 97国产精品视频人人做人人爱| 亚洲精品www久久久| 欧美日韩激情小视频| 国产精品视频yy9099| 韩国视频理论视频久久| 色婷婷综合成人av| 日韩黄色在线免费观看| 另类天堂视频在线观看| 欧美性猛交丰臀xxxxx网站| 久久久久九九九九| 永久免费看mv网站入口亚洲| 国产精品高潮呻吟视频| 亚洲午夜国产成人av电影男同| 91精品国产综合久久香蕉最新版| 欧美激情视频网址| 久久精品国产精品| 国内成人精品一区| 国产精品视频一| 搡老女人一区二区三区视频tv| 日韩av一区在线观看| 欧美尺度大的性做爰视频| 青青青国产精品一区二区| 成人97在线观看视频| 日韩中文字幕在线视频| 成人性生交大片免费看小说| 欧美网站在线观看| www.欧美精品一二三区| 在线电影av不卡网址| 国产91露脸中文字幕在线| 欧美在线影院在线视频| 日韩欧美高清视频| 欧美性视频精品| 国产精品96久久久久久又黄又硬| 国语自产精品视频在线看一大j8| 国产精品一区二区三区毛片淫片| 草民午夜欧美限制a级福利片| 亚洲成人黄色在线观看| 久久精品国产久精国产思思| 国产精品狼人色视频一区| 国产精品老女人视频| 国产精品激情av在线播放| 欧美在线视频a| 亚洲综合av影视| 欧美日韩免费网站| 欧美日韩爱爱视频| 久久综合88中文色鬼| 97在线视频观看| 国产精品视频一区二区高潮| 美女精品久久久| 日韩在线免费观看视频| 亚洲美女性生活视频| 欧美午夜宅男影院在线观看| 国产精品福利在线观看| 国产欧美日韩精品丝袜高跟鞋| 亚洲午夜久久久久久久| 成人国产精品一区| www.午夜精品| 欧美激情亚洲综合一区| 亚洲欧美精品中文字幕在线| 久久精品最新地址| 在线精品国产欧美| 亚洲国产精品人久久电影| 欧美日韩在线视频观看| 色偷偷888欧美精品久久久| 日韩电影中文字幕在线观看| 亚洲精品美女在线观看| 国产精品久在线观看| 97国产精品免费视频| 国产精品久久久久影院日本| 国产精品va在线播放我和闺蜜| 欧美理论电影在线播放| 成人福利在线观看| 在线视频一区二区| 最近中文字幕2019免费| 国产91对白在线播放| 91久久久在线| 亚洲欧美国产va在线影院| 亚洲aaaaaa| 日韩欧美999| 久久久999国产精品| 日韩精品极品在线观看| 国模私拍视频一区| 日av在线播放中文不卡| 91精品国产自产在线观看永久| 欧美性少妇18aaaa视频| 日本高清视频精品| 久久久爽爽爽美女图片| 亚洲图片欧洲图片av| 国产日韩欧美日韩大片| 国语自产精品视频在免费| 日韩有码在线视频| 久久久精品国产网站| 午夜精品久久久久久久久久久久| 日产日韩在线亚洲欧美| 国产精品99蜜臀久久不卡二区| 欧美高跟鞋交xxxxhd| 久久精品国产清自在天天线| 不卡伊人av在线播放| 26uuu久久噜噜噜噜| 国产精品pans私拍| 在线电影av不卡网址| 欧美wwwxxxx| 日韩欧美在线字幕| 国产精品免费小视频| 91欧美精品成人综合在线观看|