css3 車輪轉動的自行車效果程式碼例項
分享一段程式碼例項,它完全使用css3實現了自行車的轉動效果。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> * { padding: 0; margin: 0; } html, body { width: 100%; height: 100%; position: fixed; top: 50%; left: 0%; } html { background-color: rgba(58,62,67,1); } #animation { width: 450px; } .bike { position: relative; } .front.wheel { margin-left: 140px; } .back.wheel { margin-left: -120px; } .wheel { width: 144px; height: 144px; margin-top: 50px; border-radius: 150px; position: absolute; top: calc(50% - 75px); left: calc(50% - 75px); border: 3px solid #ff6f6a; overflow: hidden; border-radius: 150px; animation: wheelSpin 1.6s linear 0s infinite reverse none; -webkit-animation: wheelSpin 1.6s linear 0s infinite reverse none; } .wheel .hub { background-color: rgba(115,118,121,1); border: 2px dotted rgba(235,238,241,0.5); width: 10px; height: 10px; border-radius: 150px; position: absolute; top: calc(50% - 7px); left: calc(50% - 7px); z-index: 12; } .wheel .gear { background-color: rgba(75,78,81,1); border: 3px dotted rgba(255,250,250,1); border-radius: 150px; position: absolute; top: calc(50% - 13px); left: calc(50% - 13px); width: 20px; height: 20px; z-index: -1; } .wheel .rim { position: absolute; width: calc( 100% - 4px ); height: calc( 100% - 4px ); border: 2px solid rgba(255,111,106,0.9); border-radius: 150px; z-index: 12; } .wheel .rim .air { position: absolute; background-color: rgba(18,22,26,1); left: 50%; width: 2px; height: 6px; border-radius: 5px; z-index: 14; margin-left: -8px; } .back.wheel .rim .air { bottom: 0; } .wheel .spokes div { position: absolute; width: 0px; height: 144px; border-left: 1px solid rgba(255,111,106,0.5); margin-left: calc( 50% - 1px ); } .wheel .spokes div:nth-of-type(1) { -webkit-transform: rotate(22.5deg); transform: rotate(22.5deg); } .wheel .spokes div:nth-of-type(2) { -webkit-transform: rotate(45deg); transform: rotate(45deg); } .wheel .spokes div:nth-of-type(3) { -webkit-transform: rotate(67.5deg); transform: rotate(67.5deg); } .wheel .spokes div:nth-of-type(4) { -webkit-transform: rotate(90deg); transform: rotate(90deg); } .wheel .spokes div:nth-of-type(5) { -webkit-transform: rotate(112.5deg); transform: rotate(112.5deg); } .wheel .spokes div:nth-of-type(6) { -webkit-transform: rotate(135deg); transform: rotate(135deg); } .wheel .spokes div:nth-of-type(7) { -webkit-transform: rotate(157.5deg); transform: rotate(157.5deg); } .wheel .spokes div:nth-of-type(8) { -webkit-transform: rotate(180deg); transform: rotate(180deg); } @keyframes wheelSpin { 100% { -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg); } 0% { -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg); } } @-webkit-keyframes wheelSpin { 100% { -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg); } 0% { -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg); } } @keyframes audioLines { 100% { width: 0px; } 81% { width: 0px; } 78% { width: 15px; } 75% { width: 0; } 72% { width: 15px; } 69% { width: 0px; } 0% { width: 0px; } } @-webkit-keyframes audioLines { 100% { width: 0px; } 81% { width: 0px; } 78% { width: 15px; } 75% { width: 0; } 72% { width: 15px; } 69% { width: 0px; } 0% { width: 0px; } } @keyframes audioMove { 100% { -webkit-transform: translate(0px, 0px); -moz-transform: translate(0px, 0px); -ms-transform: translate(0px, 0px); -o-transform: translate(0px, 0px); transform: translate(0px, 0px); } 81% { -webkit-transform: translate(0px, 0px); -moz-transform: translate(0px, 0px); -ms-transform: translate(0px, 0px); -o-transform: translate(0px, 0px); transform: translate(0px, 0px); } 78% { -webkit-transform: translate(2px, 0px); -moz-transform: translate(2px, 0px); -ms-transform: translate(2px, 0px); -o-transform: translate(2px, 0px); transform: translate(2px, 0px); } 75% { -webkit-transform: translate(-2px, 0px) rotate( -10deg ); -moz-transform: translate(-2px, 0px) rotate( -10deg ); -ms-transform: translate(-2px, 0px) rotate( -10deg ); -o-transform: translate(-2px, 0px) rotate( -10deg ); transform: translate(-2px, 0px) rotate( -10deg ); } 72% { -webkit-transform: translate(2px, 0px) rotate( 10deg ); -moz-transform: translate(2px, 0px) rotate( 10deg ); -ms-transform: translate(2px, 0px) rotate( 10deg ); -o-transform: translate(2px, 0px) rotate( 10deg ); transform: translate(2px, 0px) rotate( 10deg ); } 69% { -webkit-transform: translate(0px, 0px); -moz-transform: translate(0px, 0px); -ms-transform: translate(0px, 0px); -o-transform: translate(0px, 0px); transform: translate(0px, 0px); } 0% { -webkit-transform: translate(0px, 0px); -moz-transform: translate(0px, 0px); -ms-transform: translate(0px, 0px); -o-transform: translate(0px, 0px); transform: translate(0px, 0px); } } @-webkit-keyframes audioMove { 100% { -webkit-transform: translate(0px, 0px); -moz-transform: translate(0px, 0px); -ms-transform: translate(0px, 0px); -o-transform: translate(0px, 0px); transform: translate(0px, 0px); } 81% { -webkit-transform: translate(0px, 0px); -moz-transform: translate(0px, 0px); -ms-transform: translate(0px, 0px); -o-transform: translate(0px, 0px); transform: translate(0px, 0px); } 78% { -webkit-transform: translate(2px, 0px); -moz-transform: translate(2px, 0px); -ms-transform: translate(2px, 0px); -o-transform: translate(2px, 0px); transform: translate(2px, 0px); } 75% { -webkit-transform: translate(-2px, 0px) rotate( -10deg ); -moz-transform: translate(-2px, 0px) rotate( -10deg ); -ms-transform: translate(-2px, 0px) rotate( -10deg ); -o-transform: translate(-2px, 0px) rotate( -10deg ); transform: translate(-2px, 0px) rotate( -10deg ); } 72% { -webkit-transform: translate(2px, 0px) rotate( 10deg ); -moz-transform: translate(2px, 0px) rotate( 10deg ); -ms-transform: translate(2px, 0px) rotate( 10deg ); -o-transform: translate(2px, 0px) rotate( 10deg ); transform: translate(2px, 0px) rotate( 10deg ); } 69% { -webkit-transform: translate(0px, 0px); -moz-transform: translate(0px, 0px); -ms-transform: translate(0px, 0px); -o-transform: translate(0px, 0px); transform: translate(0px, 0px); } 0% { -webkit-transform: translate(0px, 0px); -moz-transform: translate(0px, 0px); -ms-transform: translate(0px, 0px); -o-transform: translate(0px, 0px); transform: translate(0px, 0px); } } .frame div { position: absolute; background-color: rgba(255,111,106,1); border-radius: 8px; top: 50%; right: 50%; width: 4px; margin-right: 4px; } .frame div.small { width: 4px; margin-right: 2px; } .frame div:nth-of-type(1) { height: 148px; margin-top: -85px; margin-right: 30px; -webkit-transform: rotate(-20deg); -moz-transform: rotate(-20deg); -ms-transform: rotate(-20deg); -o-transform: rotate(-20deg); transform: rotate(-20deg); } .frame div:nth-of-type(2) { height: 118px; margin-top: -4px; margin-right: 62px; -webkit-transform: rotate(-86deg); -moz-transform: rotate(-86deg); -ms-transform: rotate(-86deg); -o-transform: rotate(-86deg); transform: rotate(-86deg); } .frame div:nth-of-type(3) { height: 146px; margin-top: -64px; margin-right: -46px; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); -o-transform: rotate(45deg); transform: rotate(45deg); } .frame div:nth-of-type(4) { height: 120px; margin-top: -55px; margin-right: 80px; -webkit-transform: rotate(40deg); -moz-transform: rotate(40deg); -ms-transform: rotate(40deg); -o-transform: rotate(40deg); transform: rotate(40deg); } .frame div:nth-of-type(5) { height: 135px; margin-top: -113px; margin-right: -28px; -webkit-transform: rotate(-94deg); -moz-transform: rotate(-94deg); -ms-transform: rotate(-94deg); -o-transform: rotate(-94deg); transform: rotate(-94deg); } .frame div:nth-of-type(6) { height: 168px; margin-top: -108px; margin-right: -107px; -webkit-transform: rotate(-25deg); -moz-transform: rotate(-25deg); -ms-transform: rotate(-25deg); -o-transform: rotate(-25deg); transform: rotate(-25deg); } .seat { position: relative; display: block; top: 10px; } .seat .support { position: absolute; top: 50%; left: 125px; margin-left: 31px; margin-top: -133px; width: 5px; height: 84px; border-radius: 32px; background-color: rgba(255,111,106,1); -webkit-transform: rotate(90deg); -moz-transform: rotate(14deg); -ms-transform: rotate(14deg); -o-transform: rotate(14deg); transform: rotate(14deg); } .seat .saddle { width: 0; height: 0; border-left: 50px solid transparent; border-right: 30px solid transparent; border-top: 18px solid rgba(255,111,106,1); border-top-right-radius: 32px; border-bottom-right-radius: 32px; border-top-left-radius: 32px; position: absolute; top: 50%; left: 125px; margin-left: -5px; margin-top: -92px; } .seat .saddle:before { content: "."; position: absolute; color: rgba(0,0,0,0); width: 18px; height: 18px; margin-left: -25px; border-top-left-radius: 45px; border-bottom-left-radius: 25px; border-bottom-right-radius: 45px; border-bottom: 2px solid rgba(255,111,106,1); border-left: 2px solid rgba(255,111,106,1); margin-top: -15px; -webkit-transform: rotate(15deg); -moz-transform: rotate(15deg); -ms-transform: rotate(15deg); -o-transform: rotate(15deg); transform: rotate(15deg); } .pedals { position: absolute; z-index: 101; top: 50%; right: 50%; margin-top: 60px; margin-right: 6px; animation: wheelSpin 2.2s linear 0s infinite reverse none; -webkit-animation: wheelSpin 2.2s linear 0s infinite reverse none; } .pedals .gear { border: 3px solid rgba(255,111,106,1); border-radius: 150px; position: absolute; top: calc(50% - 22px); left: calc(50% - 22px); width: 38px; height: 38px; z-index: 1; overflow: hidden; } .pedals .gear .hub { background-color: rgba(255,111,106,1); width: 16px; height: 16px; border-radius: 20px; position: absolute; top: calc(50% - 8px); left: calc(50% - 8px); z-index: 2; } .pedals .gear .struts { position: absolute; width: 100%; height: 100%; -webkit-transform: rotate(60deg); -moz-transform: rotate(60deg); -ms-transform: rotate(60deg); -o-transform: rotate(60deg); transform: rotate(60deg); } .pedals .pedal { background-color: rgba(255,111,106,1); border-radius: 10px; position: absolute; top: calc(50% - 3px); left: calc(50% - 3px); width: 3px; height: 35px; z-index: 5; } .pedals .pedal .footpad { width: 16px; height: 5px; border-radius: 4px; position: absolute; z-index: 200; margin-left: -6px; margin-top: 31px; background-color: rgba(255,111,106,1); animation: wheelSpin 2.2s linear 0s infinite normal none; -webkit-animation: wheelSpin 2.2s linear 0s infinite normal none; } .pedals .pedal.back { z-index: -1; margin-top: -35px; -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); -ms-transform: rotate(180deg); -o-transform: rotate(180deg); transform: rotate(180deg); } .handlebars { z-index: 10; position: relative; display: block; top: 10px; } .handlebars .handle { position: absolute; border-left: 5px solid rgba(255,111,106,1); border-top: 5px solid rgba(255,111,106,1); border-bottom: 5px solid rgba(255,111,106,1); border-top-left-radius: 45px; border-bottom-left-radius: 45px; right: 50%; width: 50px; height: 20px; margin-right: -121px; margin-top: -121px; -webkit-transform: rotate(-15deg); } .handlebars .handle:after { content: ""; position: absolute; width: 7px; height: 0; display: block; margin-left: 36px; border: 5px solid rgba(255,111,106,1); margin-top: -6px; border-radius: 35%; } .handlebars .handle:before { content: " "; position: absolute; background-color: rgba(58,62,67,1); width: 35px; height: 10px; display: block; margin-left: 30px; margin-top: 19px; } .handle-hub { position: relative; width: 7px; height: 0; left: -6px; top: 29px; display: block; margin-left: 30px; border: 5px solid rgba(255,111,106,1); margin-top: -12px; border-radius: 35%; } .chain { border: 2px solid rgba(255,111,106,1); border-right: 0; border-top: 0; border-top-left-radius: 40px; border-bottom-left-radius: 40px; width: 125px; height: 25px; position: relative; display: block; top: 58px; left: 90px; -webkit-transform: rotate(8deg); -moz-transform: rotate(8deg); -ms-transform: rotate(8deg); -o-transform: rotate(8deg); transform: rotate(8deg); } .chain:before { width: 120px; border-top: 2px solid rgba(255,111,106,1); content: " "; dispaly: block; position: absolute; z-index: 9999; top: -8px; left: 6px; -webkit-transform: rotate(-8deg); -moz-transform: rotate(-8deg); -ms-transform: rotate(-8deg); -o-transform: rotate(-8deg); transform: rotate(-8deg); } .basket { border: 2px solid rgba(255,111,106,1); width: 55px; height: 60px; display: block; position: absolute; top: -82px; right: 53px; z-index: 99999; border-top-right-radius: 20px; border-top-left-radius: 20px; } .basket:before { border-left: 2px solid rgba(255,111,106,1); width: 55px; height: 62px; content: " "; display: block; position: absolute; top: -0px; right: 6px; z-index: 99999; border-top-left-radius: 22px; -webkit-transform: rotate(4deg); -moz-transform: rotate(3deg); -ms-transform: rotate(3deg); -o-transform: rotate(3deg); transform: rotate(3deg); } .basket:after { border-left: 2px solid rgba(255,111,106,1); width: 70px; height: 9px; content: " "; display: block; position: absolute; top: 87px; left: -55px; z-index: 99999; -webkit-transform: rotate(113deg); -moz-transform: rotate(113deg); -ms-transform: rotate(113deg); -o-transform: rotate(113deg); transform: rotate(113deg); } .basket-wire { border-top: 1px solid rgba(255,111,106,1); width: 105px; height: 105px; display: block; position: absolute; -webkit-transform: rotate(118deg); -moz-transform: rotate(118deg); -ms-transform: rotate(118deg); -o-transform: rotate(118deg); transform: rotate(118deg); right: 60px; top: -55px; border-top-left-radius: 22px; } .basket-wire:after { content: " "; border-top: 1px solid rgba(255,111,106,1); width: 115px; height: 105px; display: block; position: absolute; right: 0px; top: -5px; border-top-left-radius: 30px; z-index: 9999; } .basket-screw { border-left: 2px solid rgba(255,111,106,1); width: 4px; height: 4px; display: block; position: absolute; top: 56px; left: -16px; z-index: 99999; -webkit-transform: rotate(-113deg); -moz-transform: rotate(113deg); -ms-transform: rotate(113deg); -o-transform: rotate(113deg); transform: rotate(113deg); } .basket-screw:before { border-left: 2px solid rgba(255,111,106,1); width: 10px; height: 13px; content: " "; display: block; position: absolute; top: 0; left: -8px; z-index: 99999; } </style> </head> <body> <div style="text-align:center;clear:both;position:absolute;top:-250px;left:50px;z-index:999"> </div> <div id="animation"> <div class="bike"> <div class="basket"><div class="basket-screw"></div></div> <div class="basket-wire"></div> <div class="front wheel"> <div class="rim"> <div class="air"></div> </div> <div class="hub"></div> <div class="spokes"> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> </div> </div> <div class="frame"> <div></div> <div></div> <div></div> <div class="small"></div> <div></div> <div class="small"></div> </div> <div class="seat"> <div class="support"></div> <div class="saddle"></div> </div> <div class="handlebars"> <div class="handle"><div class="handle-hub"></div></div> </div> <div class="pedals"> <div class="gear"> <div class="hub"></div> <div class="struts"> </div> </div> <div class="front pedal"> <div class="footpad"></div> </div> <div class="back pedal"> <div class="footpad"></div> </div> </div> <div class="back wheel"> <div class="rim"> <div class="air"></div> </div> <div class="hub"></div> <div class="gear"></div> <div class="spokes"> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> </div> </div> <div class="chain"></div> </div> </div> </body> </html>
相關文章
- CSS3旋轉效果程式碼例項CSSS3
- CSS3旋轉風車效果程式碼CSSS3
- css3晃動效果程式碼例項CSSS3
- CSS3星系運動效果程式碼例項CSSS3
- css3水滴效果程式碼例項CSSS3
- CSS3心形效果程式碼例項CSSS3
- CSS3滑過光束效果程式碼例項CSSS3
- CSS3小黃人效果程式碼例項CSSS3
- css3折角效果程式碼例項CSSS3
- CSS3梯形效果程式碼例項CSSS3
- CSS3背景漸變效果程式碼例項CSSS3
- CSS3文字凹凸效果程式碼例項CSSS3
- CSS3文字陰影效果程式碼例項CSSS3
- div前後翻轉效果程式碼例項
- 美化滾動條效果程式碼例項
- CSS3旋轉大風車效果詳解CSSS3
- CSS3卡通形象程式碼例項CSSS3
- jQuery tab選項卡效果程式碼例項jQuery
- canvas載入效果程式碼例項Canvas
- CSS橢圓效果程式碼例項CSS
- CSS3發光背景程式碼例項CSSS3
- CSS3紙飛機程式碼例項CSSS3
- 使用css3實現小車行駛的動畫效果CSSS3動畫
- CSS3滾動條效果程式碼CSSS3
- canvas原型鐘錶效果程式碼例項Canvas原型
- css背景虛化效果程式碼例項CSS
- canvas氣泡上浮效果程式碼例項Canvas
- CSS3圖層陰影程式碼例項CSSS3
- jQuery點選滑出層效果程式碼例項jQuery
- 當前文字框高亮效果程式碼例項
- 淡入淡出效果簡單程式碼例項
- canvas繪製箭頭效果程式碼例項Canvas
- html實現簡單ListViews效果的例項程式碼HTMLView
- CSS3 translate導致字型模糊的例項程式碼CSSS3
- CSS3箭靶效果程式碼CSSS3
- CSS3 loadding效果程式碼CSSS3
- vue例項-購物車功能Vue
- CSS3立體導航選單程式碼例項CSSS3
- 瑞士巴塞爾大學:研究發現電單車的健身效果和普通自行車一樣好