摘要:效果預(yù)覽按下右側(cè)的點擊預(yù)覽按鈕可以在當(dāng)前頁面預(yù)覽,點擊鏈接可以全屏預(yù)覽??山换ヒ曨l教程此視頻是可以交互的,你可以隨時暫停視頻,編輯視頻中的代碼。
效果預(yù)覽
按下右側(cè)的“點擊預(yù)覽”按鈕可以在當(dāng)前頁面預(yù)覽,點擊鏈接可以全屏預(yù)覽。
https://codepen.io/comehope/pen/qKOPGw
可交互視頻教程此視頻是可以交互的,你可以隨時暫停視頻,編輯視頻中的代碼。
請用 chrome, safari, edge 打開觀看。
https://scrimba.com/p/pEgDAM/c6GV2Ay
源代碼下載每日前端實戰(zhàn)系列的全部源代碼請從 github 下載:
https://github.com/comehope/front-end-daily-challenges
代碼解讀定義 dom,一個 book 容器中包含一個 page 容器,page 中再包含 5 個 ,page 用于繪制書頁, 用于繪制筆劃:
重定義盒模型:
* { box-sizing: border-box; }
定義書的尺寸:
.book { --sw: 0.3em; /* stroke width */ width: 15em; height: 10em; background-color: white; border: var(--sw) solid cadetblue; border-radius: var(--sw); font-size: 20px; }
定義書頁的尺寸:
.book { position: relative; } .book .page { height: inherit; width: calc(50% + var(--sw) + var(--sw) / 2); background-color: inherit; border: inherit; border-radius: inherit; position: absolute; top: calc(-1 * var(--sw)); right: calc(-1 * var(--sw)); }
繪制書頁上的筆劃:
.book .page { display: flex; flex-direction: column; justify-content: space-between; padding: 8% 5%; } .book .page span { display: block; width: 100%; border-top: var(--sw) solid cadetblue; border-radius: inherit; }
定義筆劃動畫效果,依次畫出 5 個筆劃:
.book .page span { animation: 4s linear infinite; transform-origin: left; transform: scaleX(0); } .book .page span:nth-child(1) { animation-name: stroke-1; } .book .page span:nth-child(2) { animation-name: stroke-2; } .book .page span:nth-child(3) { animation-name: stroke-3; } .book .page span:nth-child(4) { animation-name: stroke-4; } .book .page span:nth-child(5) { animation-name: stroke-5; } @keyframes stroke-1 { 0% { transform: scaleX(0); } 10%, 100% { transform: scaleX(1); } } @keyframes stroke-2 { 10% { transform: scaleX(0); } 20%, 100% { transform: scaleX(1); } } @keyframes stroke-3 { 20% { transform: scaleX(0); } 30%, 100% { transform: scaleX(1); } } @keyframes stroke-4 { 30% { transform: scaleX(0); } 40%, 100% { transform: scaleX(1); } } @keyframes stroke-5 { 40% { transform: scaleX(0); } 50%, 100% { transform: scaleX(1); } }
最后,定義書頁翻動的效果:
.book .page { animation: flip 4s linear infinite; transform-origin: left; transform-style: preserve-3d; } @keyframes flip { 55% { transform: rotateY(0) translateX(0) skewY(0); } 70% { transform: rotateY(-90deg) translateX(calc(-1 * var(--sw) / 2)) skewY(-20deg); } 80%, 100% { transform: rotateY(-180deg) translateX(calc(-1 * var(--sw))) skewY(0); } } .book .page span { backface-visibility: hidden; }
大功告成!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/52445.html
摘要:效果預(yù)覽按下右側(cè)的點擊預(yù)覽按鈕可以在當(dāng)前頁面預(yù)覽,點擊鏈接可以全屏預(yù)覽??山换ヒ曨l教程此視頻是可以交互的,你可以隨時暫停視頻,編輯視頻中的代碼。 showImg(https://segmentfault.com/img/bVbcWD5?w=500&h=500); 效果預(yù)覽 按下右側(cè)的點擊預(yù)覽按鈕可以在當(dāng)前頁面預(yù)覽,點擊鏈接可以全屏預(yù)覽。 https://codepen.io/comeh...
摘要:過往項目年月份項目匯總共個項目年月份項目匯總共個項目年月份發(fā)布的項目前端每日實戰(zhàn)專欄每天分解一個前端項目,用視頻記錄編碼過程,再配合詳細(xì)的代碼解讀,是學(xué)習(xí)前端開發(fā)的活的參考書視頻演示如何用純創(chuàng)作一個表達(dá)懷念童年心情的條紋彩虹心特效視頻演示如 過往項目 2018 年 5 月份項目匯總(共 30 個項目) 2018 年 4 月份項目匯總(共 8 個項目) 2018 年 6 月份發(fā)布的項目 ...
摘要:過往項目年月份項目匯總共個項目年月份項目匯總共個項目年月份發(fā)布的項目前端每日實戰(zhàn)專欄每天分解一個前端項目,用視頻記錄編碼過程,再配合詳細(xì)的代碼解讀,是學(xué)習(xí)前端開發(fā)的活的參考書視頻演示如何用純創(chuàng)作一個表達(dá)懷念童年心情的條紋彩虹心特效視頻演示如 過往項目 2018 年 5 月份項目匯總(共 30 個項目) 2018 年 4 月份項目匯總(共 8 個項目) 2018 年 6 月份發(fā)布的項目 ...
閱讀 2032·2021-11-25 09:43
閱讀 1967·2019-08-30 13:56
閱讀 1231·2019-08-30 12:58
閱讀 3432·2019-08-29 13:52
閱讀 763·2019-08-26 12:17
閱讀 1468·2019-08-26 11:32
閱讀 944·2019-08-23 13:50
閱讀 1309·2019-08-23 11:53