• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

    如何用純CSS實(shí)現(xiàn)動(dòng)態(tài)行駛的火車

    來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 18:47:52
    文檔

    如何用純CSS實(shí)現(xiàn)動(dòng)態(tài)行駛的火車

    如何用純CSS實(shí)現(xiàn)動(dòng)態(tài)行駛的火車:這篇文章給大家介紹的文章內(nèi)容是關(guān)于如何用純CSS實(shí)現(xiàn)正在行駛中的火車,有很好的參考價(jià)值,希望可以幫助到有需要的朋友。效果預(yù)覽代碼解讀定義 dom,容器中包含 2 個(gè)元素,train 代表火車,track 代表鐵軌,其中包含的 3 個(gè) <span> 代表 3
    推薦度:
    導(dǎo)讀如何用純CSS實(shí)現(xiàn)動(dòng)態(tài)行駛的火車:這篇文章給大家介紹的文章內(nèi)容是關(guān)于如何用純CSS實(shí)現(xiàn)正在行駛中的火車,有很好的參考價(jià)值,希望可以幫助到有需要的朋友。效果預(yù)覽代碼解讀定義 dom,容器中包含 2 個(gè)元素,train 代表火車,track 代表鐵軌,其中包含的 3 個(gè) <span> 代表 3
    這篇文章給大家介紹的文章內(nèi)容是關(guān)于如何用純CSS實(shí)現(xiàn)正在行駛中的火車,有很好的參考價(jià)值,希望可以幫助到有需要的朋友。

    效果預(yù)覽

    1537227260-5b5a5277c14a0_articlex.gif

    代碼解讀

    定義 dom,容器中包含 2 個(gè)元素,train 代表火車,track 代表鐵軌,其中包含的 3 個(gè) <span> 代表 3 根枕木。

    <p class="loader">
     <p class="train"></p>
     <p class="track">
     <span></span>
     <span></span>
     <span></span>
     </p>
    </p>

    居中顯示:

    body{
     margin: 0;
     height: 100vh;
     display: flex;
     align-items: center;
     justify-content: center;
     background: linear-gradient(#666, #333);
    }

    定義容器尺寸:

    .loader {
     width: 8em;
     height: 10em;
     font-size: 20px;
    }

    先畫火車。
    畫出火車的輪廓:

    .train {
     width: 6em;
     height: 6em;
     color: #444;
     background: #bbb4ab;
     border-radius: 1em;
     position: relative;
     left: 1em;
    }

    用 ::before 偽元素畫出車窗:

    .train::before {
     content: '';
     position: absolute;
     width: 80%;
     height: 2.3em;
     background-color: currentColor;
     border-radius: 0.4em;
     top: 1.2em;
     left: 10%;
    }

    再用 ::after 偽元素畫出車窗上的信號(hào)燈:

    .train::after {
     content: '';
     position: absolute;
     width: 25%;
     height: 0.4em;
     background-color: currentColor;
     border-radius: 0.3em;
     top: 0.4em;
     left: calc((100% - 25%) / 2);
    }

    利用徑向漸變畫出車燈:

    .train {
     background: 
     radial-gradient(circle at 20% 80%, currentColor 0.6em, transparent 0.6em),
     radial-gradient(circle at 80% 80%, currentColor 0.6em, transparent 0.6em),
     #bbb;
    }

    接下來畫鐵軌和枕木。
    定義鐵軌的寬度,比火車稍寬:

    .track {
     width: 8em;
    }

    用偽元素畫出鐵軌:

    .track {
     position: relative;
    }
    
    .track::before,
    .track::after {
     content: '';
     position: absolute;
     width: 0.3em;
     height: 4em;
     background-color: #bbb;
     border-radius: 0.4em;
    }

    把鐵軌分別放置在兩側(cè),并形成近大遠(yuǎn)小的視覺效果:

    .track::before,
    .track::after {
     transform-origin: bottom;
    }
    
    .track::before {
     left: 0;
     transform: skewX(-27deg);
    }
    
    .track::after {
     right: 0;
     transform: skewX(27deg);
    }

    畫出枕木,這是距離觀察者最近的效果,目前 3 根枕木是重疊在一起的:

    .track span {
     width: inherit;
     height: 0.3em;
     background-color: #bbb;
     position: absolute;
     top: 4em;
    }

    設(shè)置鐵軌的動(dòng)畫效果:

    .track span {
     animation: track-animate 1s linear infinite;
    }
    
    @keyframes track-animate {
     0% {
     transform: translateY(-0.5em) scaleX(0.9);
     filter: opacity(0);
     }
    
     10%, 90% {
     filter: opacity(1);
     }
    
     100% {
     transform: translateY(-4em) scaleX(0.5);
     filter: opacity(0);
     }
    }

    為另外 2 根枕木設(shè)置動(dòng)畫延時(shí),使鐵軌看起來就像永遠(yuǎn)走不完的樣子:

    .track span:nth-child(2) {
     animation-delay: -0.33s;
    }
    
    .track span:nth-child(3) {
     animation-delay: -0.66s;
    }

    最后,為火車增加動(dòng)畫效果,看起來就像在行駛中微微晃動(dòng):

    .train {
     animation: train-animate 1.5s infinite ease-in-out;
    }
    
    @keyframes train-animate {
     0%, 100% {
     transform: rotate(0deg);
     }
    
     25%, 75% {
     transform: rotate(0.5deg);
     }
    
     50% {
     transform: rotate(-0.5deg);
     }
    }

    大功告成!

    相關(guān)推薦:

    如何利用css畫出一只小鳥(代碼)

    如何用純CSS實(shí)現(xiàn)卡通鸚鵡的效果

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    如何用純CSS實(shí)現(xiàn)動(dòng)態(tài)行駛的火車

    如何用純CSS實(shí)現(xiàn)動(dòng)態(tài)行駛的火車:這篇文章給大家介紹的文章內(nèi)容是關(guān)于如何用純CSS實(shí)現(xiàn)正在行駛中的火車,有很好的參考價(jià)值,希望可以幫助到有需要的朋友。效果預(yù)覽代碼解讀定義 dom,容器中包含 2 個(gè)元素,train 代表火車,track 代表鐵軌,其中包含的 3 個(gè) <span> 代表 3
    推薦度:
    標(biāo)簽: 火車 行駛 的火車
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久精品蜜芽亚洲国产AV| 国产精品夜色视频一级区| 91亚洲国产成人久久精品 | 久久91精品国产91久久户| 国精品无码一区二区三区在线| 亚洲AV永久无码精品一百度影院| 亚洲精品老司机在线观看| 亚洲精品乱码久久久久久蜜桃| 久久精品国产精品国产精品污| 亚洲精品性视频| 国产这里有精品| 一本一本久久a久久综合精品蜜桃| 麻豆成人久久精品二区三区免费| 精品无码av一区二区三区| 蜜臀久久99精品久久久久久| 亚洲AV永久无码精品水牛影视| 国产精品人成在线观看| 中文字幕精品亚洲无线码一区应用| 精品少妇无码AV无码专区| 亚洲精品成人片在线观看| 国产三级精品三级在线观看专1| 青青草精品视频| 98视频精品全部国产| 亚洲午夜精品一区二区| 99久久国产热无码精品免费| 亚洲国产综合精品中文字幕 | 精品国偷自产在线视频| 国内精品免费久久影院| 亚洲人成亚洲精品| 久久久久免费精品国产| 国产精品合集一区二区三区 | 国产精品九九久久免费视频| 亚洲精品高清视频| 亚洲国产精品嫩草影院| 精品一区二区在线观看| 国产精品影音先锋| 久久免费精品一区二区| 欧美精品国产精品| 国产L精品国产亚洲区久久 | 精品久久久久久国产免费了| 国产亚洲精品精品国产亚洲综合 |