<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        如何用純CSS實現動態行駛的火車

        來源:懂視網 責編:小采 時間:2020-11-27 18:47:52
        文檔

        如何用純CSS實現動態行駛的火車

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

        效果預覽

        1537227260-5b5a5277c14a0_articlex.gif

        代碼解讀

        定義 dom,容器中包含 2 個元素,train 代表火車,track 代表鐵軌,其中包含的 3 個 <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 偽元素畫出車窗上的信號燈:

        .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;
        }

        把鐵軌分別放置在兩側,并形成近大遠小的視覺效果:

        .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;
        }

        設置鐵軌的動畫效果:

        .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 根枕木設置動畫延時,使鐵軌看起來就像永遠走不完的樣子:

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

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

        .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);
         }
        }

        大功告成!

        相關推薦:

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

        如何用純CSS實現卡通鸚鵡的效果

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        如何用純CSS實現動態行駛的火車

        如何用純CSS實現動態行駛的火車:這篇文章給大家介紹的文章內容是關于如何用純CSS實現正在行駛中的火車,有很好的參考價值,希望可以幫助到有需要的朋友。效果預覽代碼解讀定義 dom,容器中包含 2 個元素,train 代表火車,track 代表鐵軌,其中包含的 3 個 <span> 代表 3
        推薦度:
        標簽: 火車 行駛 的火車
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 1000部拍拍拍18勿入免费凤凰福利 | 久99精品视频在线观看婷亚洲片国产一区一级在线 | 亚洲一线产品二线产品| 免费va在线观看| 久久精品国产免费一区| 亚洲国产激情在线一区| 亚洲成人高清在线| 最近免费中文字幕mv在线电影| 亚洲欧美日韩中文字幕在线一区| 久久久久国产成人精品亚洲午夜 | 国产大陆亚洲精品国产| 亚洲成人中文字幕| 国产男女猛烈无遮挡免费网站| 中文字幕无码毛片免费看| 国产精品亚洲片夜色在线| 亚洲综合精品网站| 91精品国产免费久久久久久青草| 免费一级毛片在线播放放视频| 亚洲白色白色在线播放| 亚洲精品无码专区久久同性男| 永久免费在线观看视频| 一级做a爰片久久毛片免费看 | 凹凸精品视频分类国产品免费| 2021在线永久免费视频| 有色视频在线观看免费高清在线直播| 久久亚洲精品国产精品| 亚洲国产成人乱码精品女人久久久不卡 | 色www永久免费视频| 污污网站免费观看| 日日狠狠久久偷偷色综合免费| 自拍日韩亚洲一区在线| 亚洲国产精品久久66| 午夜一级毛片免费视频| 人与禽交免费网站视频| 日本一道本不卡免费| 一级看片免费视频囗交| 亚洲AV无码一区二区三区久久精品 | 天天干在线免费视频| 99久久国产免费-99久久国产免费 99久久国产免费中文无字幕 | 国产精品亚洲αv天堂无码| 日韩电影免费在线|