摘要:效果預(yù)覽按下右側(cè)的點(diǎn)擊預(yù)覽按鈕可以在當(dāng)前頁(yè)面預(yù)覽,點(diǎn)擊鏈接可以全屏預(yù)覽。可交互視頻教程此視頻是可以交互的,你可以隨時(shí)暫停視頻,編輯視頻中的代碼。
效果預(yù)覽
按下右側(cè)的“點(diǎn)擊預(yù)覽”按鈕可以在當(dāng)前頁(yè)面預(yù)覽,點(diǎn)擊鏈接可以全屏預(yù)覽。
https://codepen.io/comehope/pen/qKOPGw
可交互視頻教程此視頻是可以交互的,你可以隨時(shí)暫停視頻,編輯視頻中的代碼。
請(qǐng)用 chrome, safari, edge 打開觀看。
https://scrimba.com/p/pEgDAM/c6GV2Ay
源代碼下載每日前端實(shí)戰(zhàn)系列的全部源代碼請(qǐng)從 github 下載:
https://github.com/comehope/front-end-daily-challenges
代碼解讀定義 dom,一個(gè) book 容器中包含一個(gè) page 容器,page 中再包含 5 個(gè) ,page 用于繪制書頁(yè), 用于繪制筆劃:
重定義盒模型:
* { 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; }
定義書頁(yè)的尺寸:
.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)); }
繪制書頁(yè)上的筆劃:
.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; }
定義筆劃動(dòng)畫效果,依次畫出 5 個(gè)筆劃:
.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); } }
最后,定義書頁(yè)翻動(dòng)的效果:
.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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/52445.html
摘要:效果預(yù)覽按下右側(cè)的點(diǎn)擊預(yù)覽按鈕可以在當(dāng)前頁(yè)面預(yù)覽,點(diǎn)擊鏈接可以全屏預(yù)覽。可交互視頻教程此視頻是可以交互的,你可以隨時(shí)暫停視頻,編輯視頻中的代碼。 showImg(https://segmentfault.com/img/bVbcWD5?w=500&h=500); 效果預(yù)覽 按下右側(cè)的點(diǎn)擊預(yù)覽按鈕可以在當(dāng)前頁(yè)面預(yù)覽,點(diǎn)擊鏈接可以全屏預(yù)覽。 https://codepen.io/comeh...
摘要:過(guò)往項(xiàng)目年月份項(xiàng)目匯總共個(gè)項(xiàng)目年月份項(xiàng)目匯總共個(gè)項(xiàng)目年月份發(fā)布的項(xiàng)目前端每日實(shí)戰(zhàn)專欄每天分解一個(gè)前端項(xiàng)目,用視頻記錄編碼過(guò)程,再配合詳細(xì)的代碼解讀,是學(xué)習(xí)前端開發(fā)的活的參考書視頻演示如何用純創(chuàng)作一個(gè)表達(dá)懷念童年心情的條紋彩虹心特效視頻演示如 過(guò)往項(xiàng)目 2018 年 5 月份項(xiàng)目匯總(共 30 個(gè)項(xiàng)目) 2018 年 4 月份項(xiàng)目匯總(共 8 個(gè)項(xiàng)目) 2018 年 6 月份發(fā)布的項(xiàng)目 ...
摘要:過(guò)往項(xiàng)目年月份項(xiàng)目匯總共個(gè)項(xiàng)目年月份項(xiàng)目匯總共個(gè)項(xiàng)目年月份發(fā)布的項(xiàng)目前端每日實(shí)戰(zhàn)專欄每天分解一個(gè)前端項(xiàng)目,用視頻記錄編碼過(guò)程,再配合詳細(xì)的代碼解讀,是學(xué)習(xí)前端開發(fā)的活的參考書視頻演示如何用純創(chuàng)作一個(gè)表達(dá)懷念童年心情的條紋彩虹心特效視頻演示如 過(guò)往項(xiàng)目 2018 年 5 月份項(xiàng)目匯總(共 30 個(gè)項(xiàng)目) 2018 年 4 月份項(xiàng)目匯總(共 8 個(gè)項(xiàng)目) 2018 年 6 月份發(fā)布的項(xiàng)目 ...
閱讀 1759·2021-11-25 09:43
閱讀 1953·2019-08-30 13:56
閱讀 1214·2019-08-30 12:58
閱讀 3412·2019-08-29 13:52
閱讀 755·2019-08-26 12:17
閱讀 1452·2019-08-26 11:32
閱讀 934·2019-08-23 13:50
閱讀 1298·2019-08-23 11:53