zoukankan      html  css  js  c++  java
  • [原][CSS3]会动的盒子机器人

    [PC与移动端皆可]会动的盒子机器人

    浏览器必须可以解析perspective属性。

    在线:http://wangxinsheng.herokuapp.com/boxMan

    代码:

      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4 <meta charset="UTF-8">
      5 <title>[WXS]盒子机器人</title>
      6 <meta name="author" content="WangXinsheng">
      7 <meta name="apple-mobile-web-app-capable" content="yes">
      8 <meta name="apple-mobile-web-app-status-bar-style" content="black">
      9 <meta name="viewport" id="viewport" content="width = device-width, initial-scale = 1, minimum-scale = 1, maximum-scale = 1, user-scalable=no">
     10 <meta http-equiv="X-UA-Compatible" content="chrome=1">
     11 </head>
     12 <style>
     13 * {
     14   -webkit-box-sizing: border-box;
     15   -moz-box-sizing: border-box;
     16   box-sizing: border-box;
     17 }
     18 
     19 body {
     20   height: 10em;
     21   left: 50%;
     22   margin-left: -5em;
     23   margin-top: -5em;
     24   /*perspective:设置元素被查看位置的视图*/
     25   -webkit-perspective: 1000px;
     26   -ms-perspective: 1000px;
     27   perspective: 1000px;
     28   /*perspective-origin/-webkit-perspective-origin:设置 3D 元素的基点位置*/
     29   position: absolute;
     30   top: 50%;
     31   width: 10em;
     32 }
     33 cube{
     34   position: absolute;
     35   -webkit-transform-style: preserve-3d;
     36   -ms-transform-style: preserve-3d;
     37   transform-style: preserve-3d;
     38   -webkit-transform: translateZ(-5em) rotateX(-20deg) rotateY(45deg);
     39   transform: translateZ(-5em) rotateX(-20deg) rotateY(45deg);
     40 }
     41 
     42 cube * {
     43 background-image: -webkit-radial-gradient(rgba(202,184,160,1),rgba(183,154,112,1));
     44   border: 2px solid rgba(183,154,112,1);
     45   position: absolute;
     46   display: block;
     47 }
     48 
     49 cube.header {
     50   height: 8em;
     51   width: 13em;
     52   background:none;
     53   border:none;
     54   -webkit-transform: translateZ(0em) rotateX(0deg) rotateY(0deg);
     55   transform: translateZ(0em) rotateX(0deg) rotateY(0deg);
     56 }
     57 cube.header back {
     58   height: 8em;
     59   width: 13em;
     60   -webkit-transform: rotateX(180deg) translateZ(4em);
     61   -ms-transform: rotateX(180deg) translateZ(4em);
     62   transform: rotateX(180deg) translateZ(4em);
     63 }
     64 
     65 cube.header bottom {
     66   height: 8em;
     67   width: 13em;
     68   -webkit-transform: rotateX(-90deg) translateZ(4em);
     69   -ms-transform: rotateX(-90deg) translateZ(4em);
     70   transform: rotateX(-90deg) translateZ(4em);
     71   display:none;
     72 }
     73 
     74 cube.header front {
     75   height: 8em;
     76   width: 13em;
     77   -webkit-transform: rotateY(0deg) translateZ(4em);
     78   -ms-transform: rotateY(0deg) translateZ(4em);
     79   transform: rotateY(0deg) translateZ(4em);
     80   background:url('img/headerFront.png') no-repeat rgb(202,184,160);
     81   -moz-background-size:cover;
     82   -webkit-background-size:cover;
     83   -o-background-size:cover;
     84   background-size:cover;
     85 }
     86 
     87 cube.header left {
     88   height: 8em;
     89   width: 8em;
     90   -webkit-transform: rotateY(-90deg) translateZ(4em);
     91   -ms-transform: rotateY(-90deg) translateZ(4em);
     92   transform: rotateY(-90deg) translateZ(4em);
     93 }
     94 
     95 cube.header right {
     96   height: 8em;
     97   width: 8em;
     98   -webkit-transform: rotateY(90deg) translateZ(9em);
     99   -ms-transform: rotateY(90deg) translateZ(9em);
    100   transform: rotateY(90deg) translateZ(9em);
    101 }
    102 
    103 cube.header top {
    104   height: 8em;
    105   width: 13em;
    106   -webkit-transform: rotateX(90deg) translateZ(4em);
    107   -ms-transform:rotateX(90deg) translateZ(4em);
    108   transform: rotateX(90deg) translateZ(4em);
    109 }
    110 /*------------------------------*/
    111 cube.body.body {
    112   height: 10em;
    113   width: 6em;
    114   background:none;
    115   border:none;
    116   -webkit-transform: translateZ(0em) rotateX(0deg) rotateY(0deg);
    117   transform: translateZ(0em) rotateX(0deg) rotateY(0deg);
    118 }
    119 cube.body.body back {
    120   height: 10em;
    121   width: 6em;
    122   -webkit-transform: rotateX(180deg) translateZ(3em);
    123   -ms-transform: rotateX(180deg) translateZ(3em);
    124   transform: rotateX(180deg) translateZ(3em);
    125 }
    126 
    127 cube.body.body bottom {
    128   height: 6em;
    129   width: 6em;
    130   -webkit-transform: rotateX(-90deg) translateZ(7em);
    131   -ms-transform: rotateX(-90deg) translateZ(7em);
    132   transform: rotateX(-90deg) translateZ(7em);
    133 }
    134 
    135 cube.body.body front {
    136   height: 10em;
    137   width: 6em;
    138   -webkit-transform: rotateY(0deg) translateZ(3em);
    139   -ms-transform: rotateY(0deg) translateZ(3em);
    140   transform: rotateY(0deg) translateZ(3em);
    141   background-color:rgb(202,184,160,1);
    142   background:url('img/bodyFront.png') no-repeat rgb(202,184,160);;
    143   -moz-background-size:cover;
    144   -webkit-background-size:cover;
    145   -o-background-size:cover;
    146   background-size:cover;
    147 }
    148 
    149 cube.body.body left {
    150   height: 10em;
    151   width: 6em;
    152   -webkit-transform: rotateY(-90deg) translateZ(3em);
    153   -ms-transform: rotateY(-90deg) translateZ(3em);
    154   transform: rotateY(-90deg) translateZ(3em);
    155 }
    156 
    157 cube.body.body right {
    158   height: 10em;
    159   width: 6em;
    160   -webkit-transform: rotateY(90deg) translateZ(3em);
    161   -ms-transform: rotateY(90deg) translateZ(3em);
    162   transform: rotateY(90deg) translateZ(3em);
    163 }
    164 
    165 cube.body.body top {
    166   height: 6em;
    167   width: 6em;
    168   -webkit-transform: rotateX(90deg) translateZ(3em);
    169   -ms-transform: rotateX(90deg) translateZ(3em);
    170   transform: rotateX(90deg) translateZ(3em);
    171 }
    172 /*------------------------------*/
    173 cube.hand {
    174   height: 8em;
    175   width: 3em;
    176   background:none;
    177   border:none;
    178   -webkit-transform: translateZ(0em) rotateX(0deg) rotateY(0deg);
    179   transform: translateZ(0em) rotateX(0deg) rotateY(0deg);
    180 }
    181 cube.hand back {
    182   height: 8em;
    183   width: 3em;
    184   -webkit-transform: rotateX(180deg) translateZ(1.5em) translateY(-3em);
    185   -ms-transform: rotateX(180deg) translateZ(1.5em) translateY(-3em);
    186   transform: rotateX(180deg) translateZ(1.5em) translateY(-3em);
    187 }
    188 
    189 cube.hand bottom {
    190   height: 3em;
    191   width: 3em;
    192   -webkit-transform: rotateX(-90deg) translateZ(9.5em);
    193   -ms-transform: rotateX(-90deg) translateZ(9.5em);
    194   transform: rotateX(-90deg) translateZ(9.5em);
    195 }
    196 
    197 cube.hand front {
    198   height: 8em;
    199   width: 3em;
    200   -webkit-transform: rotateY(0deg) translateZ(1.5em) translateY(3em);
    201   -ms-transform: rotateY(0deg) translateZ(1.5em) translateY(3em);
    202   transform: rotateY(0deg) translateZ(1.5em) translateY(3em);
    203 }
    204 
    205 cube.hand left {
    206   height: 8em;
    207   width: 3em;
    208   -webkit-transform: rotateY(-90deg) translateZ(1.5em) translateY(3em);
    209   -ms-transform: rotateY(-90deg) translateZ(1.5em) translateY(3em);
    210   transform: rotateY(-90deg) translateZ(1.5em) translateY(3em);
    211 }
    212 
    213 cube.hand right {
    214   height: 8em;
    215   width: 3em;
    216   -webkit-transform: rotateY(90deg) translateZ(1.5em) translateY(3em);
    217   -ms-transform: rotateY(90deg) translateZ(1.5em) translateY(3em);
    218   transform: rotateY(90deg) translateZ(1.5em) translateY(3em);
    219 }
    220 
    221 cube.hand top {
    222   height: 3em;
    223   width: 3em;
    224   -webkit-transform: rotateX(90deg) translateZ(-1.5em);
    225   -ms-transform: rotateX(90deg) translateZ(-1.5em);
    226   transform: rotateX(90deg) translateZ(-1.5em);
    227 }
    228 /*------------------------------*/
    229 cube.foot {
    230   height: 8em;
    231   width: 2.5em;
    232   background:none;
    233   border:none;
    234   -webkit-transform: translateZ(0em) rotateX(0deg) rotateY(0deg);
    235   transform: translateZ(0em) rotateX(0deg) rotateY(0deg);
    236 }
    237 cube.foot back {
    238   height: 8em;
    239   width: 2.5em;
    240   -webkit-transform: rotateX(180deg) translateZ(2.75em) translateY(-3em);
    241   -ms-transform: rotateX(180deg) translateZ(2.75em) translateY(-3em);
    242   transform: rotateX(180deg) translateZ(2.75em) translateY(-3em);
    243 }
    244 
    245 cube.foot bottom {
    246   height: 5.5em;
    247   width: 2.5em;
    248   -webkit-transform: rotateX(-90deg) translateZ(8.2em);
    249   -ms-transform: rotateX(-90deg) translateZ(8.2em);
    250   transform: rotateX(-90deg) translateZ(8.2em);
    251 }
    252 
    253 cube.foot front {
    254   height: 8em;
    255   width: 2.5em;
    256   -webkit-transform: rotateY(0deg) translateZ(2.75em) translateY(3em);
    257   -ms-transform: rotateY(0deg) translateZ(2.75em) translateY(3em);
    258   transform: rotateY(0deg) translateZ(2.75em) translateY(3em);
    259 }
    260 
    261 cube.foot left {
    262   height: 8em;
    263   width: 5.5em;
    264   -webkit-transform: rotateY(-90deg) translateZ(2.7em) translateY(3em);
    265   -ms-transform: rotateY(-90deg) translateZ(2.7em) translateY(3em);
    266   transform: rotateY(-90deg) translateZ(2.7em) translateY(3em);
    267 }
    268 
    269 cube.foot right {
    270   height: 8em;
    271   width: 5.5em;
    272   -webkit-transform: rotateY(90deg) translateZ(-0.25em) translateY(3em);
    273   -ms-transform: rotateY(90deg) translateZ(-0.25em) translateY(3em);
    274   transform: rotateY(90deg) translateZ(-0.25em) translateY(3em);
    275 }
    276 
    277 cube.foot top {
    278   height: 5.5em;
    279   width: 2.5em;
    280   -webkit-transform: rotateX(90deg) translateZ(-0.25em);
    281   -ms-transform: rotateX(90deg) translateZ(-0.25em);
    282   transform: rotateX(90deg) translateZ(-0.25em);
    283 }
    284 /*------------------------------*/
    285 cube.dress {
    286   height: 3em;
    287   width: 6em;
    288   background:none;
    289   border:none;
    290   -webkit-transform: translateZ(0em) rotateX(0deg) rotateY(0deg);
    291   transform: translateZ(0em) rotateX(0deg) rotateY(0deg);
    292 }
    293 cube.dress back {
    294   height: 3em;
    295   width: 6em;
    296   -webkit-transform: rotateX(180deg) translateZ(2.0em) rotateX(-33deg) translateY(-3em);
    297   -ms-transform: rotateX(180deg) translateZ(2.0em) rotateX(-33deg) translateY(-3em);
    298   transform: rotateX(180deg) translateZ(2.0em) rotateX(-33deg) translateY(-3em);
    299 }
    300 
    301 cube.dress front {
    302   height: 3em;
    303   width: 6em;
    304   -webkit-transform: rotateY(0deg) translateZ(2.0em) rotateX(33deg) translateY(3em);
    305   -ms-transform: rotateY(0deg) translateZ(2.0em) rotateX(33deg) translateY(3em);
    306   transform: rotateY(0deg) translateZ(2.0em) rotateX(33deg) translateY(3em);
    307 }
    308 
    309 cube.dress left {
    310   height: 3em;
    311   width: 6em;
    312   -webkit-transform: rotateY(-90deg) translateZ(2.0em) rotateX(33deg) translateY(3em);
    313   -ms-transform: rotateY(-90deg) translateZ(2.0em) rotateX(33deg) translateY(3em);
    314   transform: rotateY(-90deg) translateZ(2.0em) rotateX(33deg) translateY(3em);
    315 }
    316 
    317 cube.dress right {
    318   height: 3em;
    319   width: 6em;
    320   -webkit-transform: rotateY(90deg) translateZ(2.0em) rotateX(33deg) translateY(3em);
    321   -ms-transform: rotateY(90deg) translateZ(2.0em) rotateX(33deg) translateY(3em);
    322   transform: rotateY(90deg) translateZ(2.0em) rotateX(33deg) translateY(3em);
    323 }
    324 /*------------animate-------------*/
    325 /*--------------------*/
    326 .lHand{
    327     animation: lhand 2s infinite linear;
    328     -moz-animation: lhand 2s infinite linear;    /* Firefox */
    329     -webkit-animation: lhand 2s infinite linear;    /* Safari 和 Chrome */
    330     -webkit-animation-direction:alternate;
    331 }
    332 @keyframes lhand
    333 {
    334 from {
    335   transform: rotateX(-50deg) rotateZ(-5deg);
    336   }
    337 to {
    338   transform: rotateX(50deg) rotateZ(5deg);
    339   }
    340 }
    341 @-moz-keyframes lhand /* Firefox */
    342 {
    343 from {
    344   -moz-transform: rotateX(-50deg) rotateZ(-5deg);
    345   }
    346 to {
    347   -moz-transform: rotateX(50deg) rotateZ(5deg);
    348   }
    349 }
    350 @-webkit-keyframes lhand /* Safari 和 Chrome */
    351 {
    352 from {
    353   -webkit-transform: rotateX(-50deg) rotateZ(-5deg);
    354   }
    355 to {
    356   -webkit-transform: rotateX(50deg) rotateZ(5deg);
    357   }
    358 }
    359 /*--------------------*/
    360 .rHand{
    361     animation: rhand 2s infinite linear;
    362     -moz-animation: rhand 2s infinite linear;    /* Firefox */
    363     -webkit-animation: rhand 2s infinite linear;    /* Safari 和 Chrome */
    364     -webkit-animation-direction:alternate;
    365 }
    366 @keyframes rhand
    367 {
    368 from {
    369   transform: rotateX(50deg) rotateZ(5deg);
    370   }
    371 to {
    372   transform: rotateX(-50deg) rotateZ(-5deg);
    373   }
    374 }
    375 @-moz-keyframes rhand /* Firefox */
    376 {
    377 from {
    378   -moz-transform: rotateX(50deg) rotateZ(5deg);
    379   }
    380 to {
    381   -moz-transform: rotateX(-50deg) rotateZ(-5deg);
    382   }
    383 }
    384 @-webkit-keyframes rhand /* Safari 和 Chrome */
    385 {
    386 from {
    387   -webkit-transform: rotateX(50deg) rotateZ(5deg);
    388   }
    389 to {
    390   -webkit-transform: rotateX(-50deg) rotateZ(-5deg);
    391   }
    392 }
    393 /*--------------------*/
    394 .LFoot{
    395     animation: lfoot 2s infinite linear;
    396     -moz-animation: lfoot 2s infinite linear;    /* Firefox */
    397     -webkit-animation: lfoot 2s infinite linear;    /* Safari 和 Chrome */
    398     -webkit-animation-direction:alternate;
    399 }
    400 @keyframes lfoot
    401 {
    402 from {
    403   transform: rotateX(30deg) rotateZ(5deg);
    404   }
    405 to {
    406   transform: rotateX(-30deg) rotateZ(-5deg);
    407   }
    408 }
    409 @-moz-keyframes lfoot /* Firefox */
    410 {
    411 from {
    412   -moz-transform: rotateX(30deg) rotateZ(5deg);
    413   }
    414 to {
    415   -moz-transform: rotateX(-30deg) rotateZ(-5deg);
    416   }
    417 }
    418 @-webkit-keyframes lfoot /* Safari 和 Chrome */
    419 {
    420 from {
    421   -webkit-transform: rotateX(30deg) rotateZ(5deg);
    422   }
    423 to {
    424   -webkit-transform: rotateX(-30deg) rotateZ(-5deg);
    425   }
    426 }
    427 /*--------------------*/
    428 .rFoot{
    429     animation: rfoot 2s infinite linear;
    430     -moz-animation: rfoot 2s infinite linear;    /* Firefox */
    431     -webkit-animation: rfoot 2s infinite linear;    /* Safari 和 Chrome */
    432     -webkit-animation-direction:alternate;
    433 }
    434 @keyframes rfoot
    435 {
    436 from {
    437   transform: rotateX(-30deg) rotateZ(-5deg);
    438   }
    439 to {
    440   transform: rotateX(30deg) rotateZ(5deg);
    441   }
    442 }
    443 @-moz-keyframes rfoot /* Firefox */
    444 {
    445 from {
    446   -moz-transform: rotateX(-30deg) rotateZ(-5deg);
    447   }
    448 to {
    449   -moz-transform: rotateX(30deg) rotateZ(5deg);
    450   }
    451 }
    452 @-webkit-keyframes rfoot /* Safari 和 Chrome */
    453 {
    454 from {
    455   -webkit-transform: rotateX(-30deg) rotateZ(-5deg);
    456   }
    457 to {
    458   -webkit-transform: rotateX(30deg) rotateZ(5deg);
    459   }
    460 }
    461 /*--------------------*/
    462 .header{
    463     animation: header 3s infinite ease-out;
    464     -moz-animation: header 3s infinite ease-out;    /* Firefox */
    465     -webkit-animation: header 3s infinite ease-out;    /* Safari 和 Chrome */
    466     -webkit-animation-direction:alternate;
    467 }
    468 @keyframes header
    469 {
    470 from {
    471   transform: rotateX(-8deg) rotateY(-10deg);
    472   }
    473 to {
    474   transform: rotateX(8deg) rotateY(10deg);
    475   }
    476 }
    477 @-moz-keyframes header /* Firefox */
    478 {
    479 from {
    480   -moz-transform: rotateX(-8deg) rotateY(-10deg);
    481   }
    482 to {
    483   -moz-transform: rotateX(8deg) rotateY(10deg);
    484   }
    485 }
    486 @-webkit-keyframes header /* Safari 和 Chrome */
    487 {
    488 from {
    489   -webkit-transform: rotateX(-8deg) rotateY(-10deg);
    490   }
    491 to {
    492   -webkit-transform: rotateX(8deg) rotateY(10deg);
    493   }
    494 }
    495 /*--------------------*/
    496 .all{
    497     animation: all 8s infinite linear;
    498     -moz-animation: all 8s infinite linear;
    499     -webkit-animation: all 8s infinite linear;
    500     -webkit-animation-direction:alternate;
    501 }
    502 @keyframes all
    503 {
    504 from {
    505   transform: rotateY(20deg);
    506   }
    507 to {
    508   transform: rotateY(50deg);
    509   }
    510 }
    511 @-moz-keyframes all /* Firefox */
    512 {
    513 from {
    514   -moz-transform: rotateY(20deg);
    515   }
    516 to {
    517   -moz-transform: rotateY(50deg);
    518   }
    519 }
    520 @-webkit-keyframes all /* Safari 和 Chrome */
    521 {
    522 from {
    523   -webkit-transform: rotateY(20deg);
    524   }
    525 to {
    526   -webkit-transform: rotateY(50deg);
    527   }
    528 }
    529 </style>
    530 <body>
    531 <cube class="all" style=''>
    532     <cube class="header" style='top:-6em;left:-3.5em'>
    533       <back></back>
    534       <bottom></bottom>
    535       <front></front>
    536       <left></left>
    537       <right></right>
    538       <top></top>
    539     </cube>
    540     <cube class="body" style=''>
    541       <back></back>
    542       <bottom></bottom>
    543       <front></front>
    544       <left></left>
    545       <right></right>
    546       <top></top>
    547     </cube>
    548     <cube class="hand lHand" style='top:0.5em;left:-3.5em;'>
    549       <back></back>
    550       <bottom></bottom>
    551       <front></front>
    552       <left></left>
    553       <right></right>
    554       <top></top>
    555     </cube>
    556     <cube class="hand rHand" style='top:0.5em;left:6.5em;'>
    557       <back></back>
    558       <bottom></bottom>
    559       <front></front>
    560       <left></left>
    561       <right></right>
    562       <top></top>
    563     </cube>
    564     <cube class="foot LFoot" style='top:6.5em;left:0.25em;'>
    565       <back></back>
    566       <bottom></bottom>
    567       <front></front>
    568       <left></left>
    569       <right></right>
    570       <top></top>
    571     </cube>
    572     <cube class="foot rFoot" style='top:6.5em;left:3.25em;'>
    573       <back></back>
    574       <bottom></bottom>
    575       <front></front>
    576       <left></left>
    577       <right></right>
    578       <top></top>
    579     </cube>
    580     <cube class="dress" style='top:6em;left:0em;'>
    581       <back></back>
    582       <front></front>
    583       <left></left>
    584       <right></right>
    585     </cube>
    586 </cube>
    587     <script>
    588     </script>
    589 </body>
    590 </html>
    View Code

    rar:http://download.csdn.net/detail/wangxsh42/8565415

  • 相关阅读:
    vue生命周期过程做了什么
    css_css3_实用属性_随时补充更新
    echarts的symbol引用本地图片写法
    无废话设计模式(1)--简单工厂、工厂方法、抽象工厂
    JavaWeb--Maven学习
    SpringCloud Alibaba实战 -引入服务网关Gateway
    从ReentrantLock看AQS (AbstractQueuedSynchronizer) 运行流程 抽象的队列式同步器
    架构的搭建(一)SpringCloud Alibaba
    配置中心之Nacos简介,使用及Go简单集成
    RabbitMQ
  • 原文地址:https://www.cnblogs.com/wangxinsheng/p/4394014.html
Copyright © 2011-2022 走看看