<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
        主站蜘蛛池模板: 亚洲av专区无码观看精品天堂| 毛茸茸bbw亚洲人| 亚洲欧洲国产精品你懂的| 亚洲av午夜国产精品无码中文字| 一级毛片全部免费播放| 亚洲综合日韩久久成人AV| 美女被吸屁股免费网站| 最近中文字幕免费mv视频8| 亚洲白色白色在线播放| 久草视频在线免费看| 亚洲日韩av无码| a国产成人免费视频| 亚洲一区二区高清| 人体大胆做受免费视频| 亚洲AV无码之日韩精品| 免费国产va在线观看| 亚洲av成人一区二区三区在线观看 | 日韩精品免费一线在线观看| 污视频网站免费观看| 9420免费高清在线视频| 亚洲第一成年男人的天堂| 爱丫爱丫影院在线观看免费 | 四虎www成人影院免费观看| 亚洲一区电影在线观看| 日本片免费观看一区二区| 亚洲电影免费观看| 成年女人免费v片| 久久精品熟女亚洲av麻豆| 国产乱人免费视频| 春意影院午夜爽爽爽免费| 中文字幕亚洲综合久久男男| 美女被免费网站91色| 亚洲电影中文字幕| 成人免费午夜无码视频| 涩涩色中文综合亚洲| 又爽又黄无遮挡高清免费视频| 一级**爱片免费视频| 亚洲人成依人成综合网| 嫖丰满老熟妇AAAA片免费看| 亚洲色大成网站www永久网站| 免费人妻无码不卡中文字幕18禁 |