利用純CSS3實現(xiàn)動態(tài)的自行車特效源碼
發(fā)布時間:2017-01-20 17:21:17 作者:59580
我要評論

這篇文章主要介紹了如何利用純CSS3實現(xiàn)動態(tài)的自行車的方法,文中給出了完整的實例代碼,實現(xiàn)后的效果非常不錯,大家可以直接運(yùn)行看看效果,需要的朋友下面來一起學(xué)習(xí)學(xué)習(xí)吧。
首先來看看實現(xiàn)的效果圖(靜態(tài)):
實例源碼:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>自行車</title> <style type="text/css"> * { margin: 0; padding: 0 } ol, ul { list-style: none/*去掉圓點(diǎn)或數(shù)字*/ } .cycle-outer { width: 534px; height: 260px; position: absolute; /*絕對定位*/ top: 50%; /*距離頂部*/ margin: -160px 0 0 -267px; /*距離外邊距*/ left: 50%; } .cycle-wrapper { width: 534px; height: 260px; margin: 0 auto; position: relative; /*相對定位*/ } .cycle-wheel-front { /*前輪*/ margin: 100px 0 0 330px; } .cycle-wheel-back { /*后輪*/ margin: 100px 0 0 0px; } .cycle-wheel-outer { background: transparent; border: 5px solid #aaa; border-radius: 50%; /*畫外輪圓圈*/ width: 190px; height: 190px; position: absolute; margin-top: 5px; animation: wheel-rotate 2s linear infinite; /*定義動畫*/ } /*輪胎開始旋轉(zhuǎn)*/ @keyframes wheel-rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .cycle-wheel-outer:after { /*插入內(nèi)輪胎圓圈*/ background: transparent; border: 4px solid #EF9058; border-radius: 50%; width: 176px; height: 176px; position: absolute; margin: 3px; content: ""; } .spoke { /*開始畫車輪線條*/ position: absolute; width: 1px; height: 200px; background: #ccc; margin: -5px 0 0 95px; z-index: 0; } .spoke:after { /*在后面插入兩條*/ content: ""; position: absolute; width: 1px; height: 200px; background: #ccc; transform: rotate(120deg); } .spoke:before { /*在前面插入兩條*/ content: ""; position: absolute; width: 1px; height: 200px; background: #ccc; transform: rotate(240deg); } /*輪胎線條完成*/ .spoke-container li:nth-child(2) { /*中心點(diǎn)旋轉(zhuǎn)*/ transform: rotate(30deg); } .inner-disc { /*畫中心軸圓點(diǎn)*/ background: #666; width: 20px; height: 20px; border-radius: 50%; position: absolute; left: 50%; margin: -10px 0 0 -10px; top: 50%; } /*.cycle-wheel-back .inner-disc:after { content: ""; background: #666; width: 20px; height: 20px; border-radius: 50%; position: absolute; left: 50%; margin: -10px 0 0 -10px; top: 50%; }*/ .inner-disc-2 { /*畫輪胎中心軸的圓圈*/ background: transparent; width: 6px; height: 6px; border: 2px solid #FFF; border-radius: 50%; position: absolute; left: 50%; margin: -5px 0 0 -5px; top: 50%; } .cycle-wheel-back .inner-disc-2:after { /*插入后輪軸心齒輪*/ content: ""; background: transparent; width: 18px; height: 18px; border-radius: 50%; position: absolute; left: 50%; margin: -13px 0 0 -13px; top: 50%; border: 4px dotted #666; } .cycle-body { margin-left: 125px; } .front-wheel-frame {/*前叉*/ background: #5E999B; width: 8px; height: 180px; position: absolute; z-index: 2; transform: rotate(-25deg); margin: -72px 0 0 260px; } .top-frame {/*上管*/ background: #5E999B; width: 180px; height: 8px; position: absolute; z-index: 2; margin: -20px 0 0 62px; transform: rotate(-8deg); } .front-frame {/*下管*/ background: #5E999B; width: 8px; height: 160px; position: absolute; z-index: 2; transform: rotate(41deg); margin: -36px 0 0 189px; } .center-frame { /*坐桿*/ background: #5E999B; width: 8px; height: 205px; position: absolute; z-index: 2; transform: rotate(-33deg); margin: -84px 0 0 75px; } .back-frame {/*后管*/ background: #5E999B; width: 8px; height: 136px; position: absolute; z-index: 2; transform: rotate(39deg); margin: -23px 0 0 19px; } .bottom-frame {/*后叉or平管*/ background: #5E999B; width: 159px; height: 8px; position: absolute; z-index: 2; margin: 100px 0 0 -16px; } .handlebar-front {/*車把*/ width: 60px; height: 8px; background: #5E999B; z-index: 2; position: absolute; margin: -68px 0 0 222px; border-top-left-radius: 3px; border-bottom-left-radius: 3px; } .handlebar-curve {/*車把手*/ width: 40px; height: 40px; border: 8px solid #666; border-top-right-radius: 100%; border-bottom-right-radius: 100%; border-bottom-left-radius: 100%; background: transparent; position: absolute; margin: -68px 0 0 258px; border-left: 8px solid transparent; border-top: 8px solid #666; border-bottom: 8px solid #666; } /*座墊*/ .seat { width: 50px; height: 10px; background: #666; border-radius: 44%; position: absolute; margin: -73px 0 0 15px; } .seat:after { width: 0px; height: 0px; border-style: solid; border-width: 0 40px 16px 40px; border-color: transparent transparent #666 transparent; content: ""; position: absolute; z-index: 3; transform: rotate(-12deg); position: absolute; border-radius: 100%; margin: 0 0 0 -26px; } .seat:before { width: 0px; height: 0px; border-style: solid; border-width: 0 40px 16px 40px; border-color: transparent transparent #666 transparent; content: ""; position: absolute; z-index: 3; transform: rotate(179deg); position: absolute; border-radius: 100%; margin: 0 0 0 -26px; } .seat span { width: 32px; height: 19px; background: #666; border-radius: 100%; position: absolute; margin: 1px 0 0 -22px; transform: rotate(-11deg); } /*去掉中心軸的*/ .chain-rotation { position: absolute; z-index: 16; } /*中心軸*/ .chain-disc-inner { background: #666; width: 18px; height: 18px; border-radius: 50%; position: absolute; margin: 2px; z-index: 4; } .chain-disc-outer { background: #FFF; width: 22px; height: 22px; border: 5px solid #666; border-radius: 50%; position: absolute; margin: 87px 0 0 250px; z-index: 3; content: ""; } /*牙盤*/ .chain-rods { height: 70px; width: 6px; background: #666; position: absolute; margin: 67px 0 0 263px; z-index: 15; animation: wheel-rotate 2s linear infinite; } .chain-rods:before { content: ""; height: 70px; width: 6px; background: #666; position: absolute; transform: rotate(120deg); } .chain-rods:after { content: ""; height: 70px; width: 6px; background: #666; position: absolute; transform: rotate(240deg); -webkit-transform: rotate(240deg); -moz-transform: rotate(240deg); } .outer-axle { height: 70px; width: 70px; border-radius: 50%; background: transparent; border: 5px solid #666; position: absolute; margin: 62px 0 0 226px; z-index: 3; } .outer-axle:after { content: ""; height: 74px; width: 74px; border-radius: 50%; background: transparent; border: 5px dotted #666; margin: -7px; position: absolute; z-index: 3; animation: wheel-rotate 2s linear infinite; } /*車鏈子*/ .chain-up { background-color: transparent; background-size: 8px 2px; background-position: 0 0, 30px 30px; width: 155px; height: 4px; position: absolute; z-index: 9; background: #EEE; transform: rotate(-11deg); margin: 76px 0 0 98px; } .chain-up:before { content: ""; background-color: transparent; background-image: linear-gradient(90deg, #666 25%, transparent 25%, transparent 75%, #666 75%, #666); background-size: 8px 2px; background-position: 0 0, 30px 30px; width: 155px; height: 4px; animation: chainUp 2s linear infinite; position: absolute; z-index: 10; } .chain-bottom { background-color: transparent; background-size: 8px 2px; background-position: 0 0, 30px 30px; width: 155px; height: 4px; position: absolute; z-index: 9; background: #EEE; -webkit-transform: rotate(9deg); -moz-transform: rotate(9deg); transform: rotate(9deg); margin: 127px 0 0 98px; } .chain-bottom:before { content: ""; background-color: transparent; background-image: linear-gradient(90deg, #666 25%, transparent 25%, transparent 75%, #666 75%, #666); background-size: 8px 2px; background-position: 0 0, 30px 30px; width: 155px; height: 4px; animation: chainDown 2s linear infinite; position: absolute; z-index: 10; } /*腳踏*/ .pedal-rod { height: 120px; width: 6px; background: #666; position: absolute; margin: -25px 0 0 0px; } .pedal-rod:before { width: 40px; height: 10px; background: #666; position: absolute; margin: 10px; content: ""; margin: -7px -17px; animation: pedal1 2s linear infinite; } .pedal-rod:after { width: 40px; height: 10px; background: #666; position: absolute; margin: 10px; content: ""; margin: 119px -17px; animation: pedal2 2s linear infinite; } /*水壺架*/ .bottle-holder { width: 20px; height: 36px; background: #daeded; border: 3px solid #5E999B; position: absolute; margin: 54px 0 0 -25px; } .bottle-holder:after { width: 20px; height: 3px; content: ""; background: #5E999B; position: absolute; margin: 24px 0 0 0px; } /*水壺*/ .bottle-holder:before { background-color: #daeded; width: 18px; height: 10px; border-radius: 30% / 100%; border-bottom-left-radius: 0; border-bottom-right-radius: 0; content: ""; position: absolute; margin-top: -13px; border: 1px solid #98baba; border-bottom: 0; } .bottle-holder span { position: absolute; width: 9px; height: 4px; background: #666; margin: -17px 0 0 5px; } /*車鏈子動畫*/ @keyframes chainUp { 0% { background-position: 0 25%; } 100% { background-position: 100% 0; } } @keyframes chainDown { 0% { background-position: 100% 0; } 100% { background-position: 0 25%; } } /*腳踏動畫*/ @keyframes pedal1 { 0% { transform: rotate(00deg); } 25% { transform: rotate(-140deg); } 50% { transform: rotate(-180deg); } 75% { transform: rotate(-240deg); } 100% { transform: rotate(-360deg); } } @keyframes pedal2 { 0% { transform: rotate(00deg); } 25% { transform: rotate(-60deg); } 50% { transform: rotate(-180deg); } 75% { transform: rotate(-340deg); } 100% { transform: rotate(-360deg); } } </style> </head> <body> <div class="cycle-outer"> <div class="cycle-wrapper"> <!-- 描述:車架 --> <div class="cycle-body"> <div class="seat"> <span></span> </div> <div class="front-wheel-frame"></div> <div class="top-frame"></div> <div class="front-frame"> <div class="bottle-holder"> <span></span> </div> </div> <div class="center-frame"></div> <div class="back-frame"></div> <div class="bottom-frame"></div> <div class="handlebar-front"></div> <div class="handlebar-curve"></div> </div> <!-- 描述:后輪 --> <div class="cycle-wheel cycle-wheel-back"> <div class="cycle-wheel-outer"> <div class="cycle-wheel-inner"> <div class="cycle-wheel-inner-padding"> <ul class="spoke-container"> <li class="spoke"></li> <li class="spoke"></li> </ul> <div class="inner-disc"></div> <div class="inner-disc-2"></div> </div> </div> </div> </div> <!-- 描述:前輪 --> <div class="cycle-wheel cycle-wheel-front"> <div class="cycle-wheel-outer"> <div class="cycle-wheel-inner"> <div class="cycle-wheel-inner-padding"> <ul class="spoke-container"> <li class="spoke"></li> <li class="spoke"></li> </ul> <div class="inner-disc"></div> <div class="inner-disc-2"></div> </div> </div> </div> </div> <!-- 描述:中心軸 車鏈子 牙盤 水壺架 水壺 腳踏 --> <div class="chain-up"></div> <div class="chain-bottom"></div> <div class="chain-rotation"> <div class="outer-axle"></div> <div class="chain-disc-outer"> <div class="chain-disc-inner"></div> </div> </div> <div class="chain-rods"> <div class="pedal-rod"></div> </div> </div> </div> <div style="text-align:center;clear:both;"> </body> </html>
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以交流。
相關(guān)文章
- 這是一款基于純css3繪圖制作萌萌的大白動畫特效源碼。畫面中的大白呈現(xiàn)非常逼真的3D立體效果,且眼部可以不時的眨眼,顯得很萌很有靈氣2017-01-19
- 這一款基于純css3實現(xiàn)的天狗食月日食動畫特效源碼。界面上可呈現(xiàn)出太陽升起,順時針移動到中央位置后,被月亮遮擋的動畫效果。完美的呈現(xiàn)出了日食的全過程2017-01-19
- 本文給大家介紹的是一種CSS3飄帶樣式的特效,它非常適合在圖片上標(biāo)注一些文字描述,樣式非常精美,有需要的朋友們歡迎前來下載使用。2017-01-12
- 這是一款使用js和css3制作的炫酷圖片鏡像特效,可以將任意圖片進(jìn)行鏡像,并以幻燈片的方式在同一個頁面中切換不同的圖片,歡迎下載2017-01-09
- CSS3繪制逼真畫筆跳轉(zhuǎn)動畫特效源碼是一款非常比較的手繪鉛筆輪廓動畫特效。本段代碼可以在各個網(wǎng)頁使用,有需要的朋友可以直接下載使用2017-02-22
純CSS3實現(xiàn)動態(tài)3D旋轉(zhuǎn)信用卡特效源碼
純CSS3實現(xiàn)動態(tài)3D旋轉(zhuǎn)信用卡特效源碼是一款根據(jù)鼠標(biāo)的位置進(jìn)行相應(yīng)的3D旋轉(zhuǎn),并帶有光影特效,效果非常酷。本段代碼可以在各個網(wǎng)頁使用,有需要的朋友可以直接下載使用2017-02-22純CSS3制作的鼠標(biāo)懸停時邊框旋轉(zhuǎn)
本文給大家分享一段css3代碼實現(xiàn)鼠標(biāo)懸停時邊框旋轉(zhuǎn)的效果,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友參考下2017-01-03純css3實現(xiàn)簡單的旋轉(zhuǎn)風(fēng)車動畫特效源碼
這是一款純css3實現(xiàn)簡單的旋轉(zhuǎn)風(fēng)車動畫特效源碼??勺杂煽刂骑L(fēng)車旋轉(zhuǎn)的開始、暫停及轉(zhuǎn)動的速度2016-12-27純CSS3實現(xiàn)神奇寶貝精靈球Loading特效源碼
純CSS3實現(xiàn)神奇寶貝精靈球Loading特效源碼是一款彩色球旋轉(zhuǎn)加載動畫特效。本段代碼可以在各個網(wǎng)頁使用,有需要的朋友可以直接下載使用2017-02-22CSS3實現(xiàn)炫酷火柴燃燒Loading動畫特效源碼
CSS3實現(xiàn)炫酷火柴燃燒Loading動畫特效源碼是一款類似一堆火柴燃燒的效果,支持設(shè)置多久時間自動跳轉(zhuǎn)到相關(guān)網(wǎng)站頁面等等。本段代碼可以在各個網(wǎng)頁使用,有需要的朋友可以直2017-02-22