摘要:可交互視頻此視頻是可以交互的,你可以隨時暫停視頻,編輯視頻中的代碼。第部分第部分源代碼下載每日前端實戰系列的全部源代碼請從下載代碼解讀定義,容器中包含一個表示酒桶的元素和表示啤酒杯的元素。
效果預覽
按下右側的“點擊預覽”按鈕可以在當前頁面預覽,點擊鏈接可以全屏預覽。
https://codepen.io/comehope/pen/rZeOQp
可交互視頻此視頻是可以交互的,你可以隨時暫停視頻,編輯視頻中的代碼。
請用 chrome, safari, edge 打開觀看。
第 1 部分:
https://scrimba.com/p/pEgDAM/c86mdUZ
第 2 部分:
https://scrimba.com/p/pEgDAM/cmVNbTW
每日前端實戰系列的全部源代碼請從 github 下載:
https://github.com/comehope/front-end-daily-challenges
代碼解讀定義 dom,容器中包含一個表示酒桶的 .keg 元素和表示啤酒杯的 .glass 元素。酒桶有 2 個子元素,.handle 表示把手,.pipe 表示出水管,酒杯有 1 個表示啤酒的子元素 .beer:
居中顯示:
body { margin: 0; height: 100vh; display: flex; justify-content: center; background: linear-gradient( lightslategray 300px, #333 300px ); }
定義容器尺寸和偽元素的共有屬性:
.container { width: 700px; height: 300px; position: relative; } .container *::before, .container *::after { content: ""; position: absolute; }
畫出酒桶:
.keg { position: absolute; width: 90px; height: 200px; background: linear-gradient( to right, #777 70px, #555 70px ); bottom: 0; left: 310px; }
畫出出水管和它的支架:
.keg .pipe { position: absolute; width: 10px; height: 40px; background-color: #ccc; top: 33px; left: 10px; } .keg .pipe::before { width: 40px; height: 20px; background: radial-gradient( circle at 10px 10px, #eee 7px, #ccc 7px, #ccc 10px, transparent 10px ), linear-gradient( #ccc 50%, #999 50% ); border-radius: 10px; top: -2px; left: -5px; }
畫出把手:
.keg .handle { position: absolute; border-style: solid; border-width: 50px 10px 0 10px; border-color: black transparent transparent transparent; top: -10px; left: 5px; } .keg .handle::before { width: 20px; height: 10px; background-color: #ccc; top: -60px; left: -10px; border-radius: 5px 5px 0 0; } .keg .handle::after { width: 10px; height: 20px; background-color: #ccc; top: -20px; left: -5px; }
畫出酒杯:
.glass { position: absolute; width: 70px; height: 100px; color: rgba(255, 255, 255, 0.3); background-color: currentColor; bottom: 0; left: 300px; border-radius: 5px; } .glass::before { width: 50px; height: 40px; border: 10px solid; top: 20px; right: -20px; border-radius: 0 40% 40% 0; clip-path: inset(0 0 0 72%); }
畫出杯中的啤酒和泡沫:
.beer { position: absolute; width: 60px; height: 80px; background-color: rgba(255, 206, 84, 0.8); bottom: 15px; left: 5px; border-radius: 0 0 5px 5px; border-top: solid rgba(255, 206, 84, 0.8); } .beer::before { width: inherit; height: 15px; background-color: #eee; top: -15px; border-radius: 5px 5px 0 0; }
接下來制作動畫。
增加酒杯把手被壓下的動畫效果:
.keg .handle { transform-origin: center 50px; animation: handle 5s infinite; } @keyframes handle { 10%, 60% { transform: rotate(0deg); } 20%, 50% { transform: rotate(-90deg); } }
增加啤酒被斟滿的動畫效果:
.beer { animation: fillup 5s infinite; } @keyframes fillup { 0%, 20% { height: 0px; border-width: 0px; } 40% { height: 40px; } 80%, 100% { height: 80px; border-width: 5px; } }
增加啤酒泡沫泛起的動畫效果:
.beer::before { animation: wave 0.5s infinite alternate, fillup-foam 5s linear infinite; } @keyframes fillup-foam { 0%, 20% { top: 0; height: 0; } 60%, 100% { top: -15px; height: 15px; } } @keyframes wave { from { transform: skewY(-3deg); } to { transform: skewY(3deg); } }
增加啤酒從出水口流出的效果:
.keg .pipe::after { width: 10px; background-color: rgba(255, 206, 84, 0.5); animation: flow 5s infinite; } @keyframes flow { 0%, 15% { top: 40px; height: 0; } 20% { height: 115px; } 40% { height: 75px; } 55% { top: 40px; height: 50px; } 60%, 100% { top: 80px; height: 0; } }
最后,增加酒杯滑動的效果:
.glass { animation: slide 5s ease infinite; } @keyframes slide { 0% { left: 0; filter: opacity(0); } 20%, 80% { left: 300px; filter: opacity(1); } 100% { left: 600px; filter: opacity(0); } }
大功告成!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/55080.html
摘要:可交互視頻此視頻是可以交互的,你可以隨時暫停視頻,編輯視頻中的代碼。第部分第部分源代碼下載每日前端實戰系列的全部源代碼請從下載代碼解讀定義,容器中包含一個表示酒桶的元素和表示啤酒杯的元素。 showImg(https://segmentfault.com/img/bVbfXIy?w=400&h=300); 效果預覽 按下右側的點擊預覽按鈕可以在當前頁面預覽,點擊鏈接可以全屏預覽。 ht...
摘要:過往項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月至年月發布的項目前端每日實戰專欄每天分解一個前端項目,用視頻記錄編碼過程,再配合詳細的代碼解讀, 過往項目 2018 年 9 月份項目匯總(共 26 個項目) 2018 年 8 月份項目匯總(共 29 個項目) 2018 年 7 月份項目匯總(...
摘要:過往項目年月份項目匯總共個項目年月份項目匯總共個項目年月份項目匯總共個項目年月份發布的項目前端每日實戰專欄每天分解一個前端項目,用視頻記錄編碼過程,再配合詳細的代碼解讀,是學習前端開發的活的參考書視頻演示如何用純創作一臺咖啡機視頻演示如何用 過往項目 2018 年 6 月份項目匯總(共 27 個項目) 2018 年 5 月份項目匯總(共 30 個項目) 2018 年 4 月份項目匯總(...
閱讀 2731·2021-11-24 09:39
閱讀 1647·2021-09-28 09:35
閱讀 1119·2021-09-06 15:02
閱讀 1307·2021-07-25 21:37
閱讀 2726·2019-08-30 15:53
閱讀 3643·2019-08-30 14:07
閱讀 714·2019-08-30 11:07
閱讀 3512·2019-08-29 18:36