你的位置:首页 > Java教程

[Java教程]颜色随机的小方块


用碎片加载小方块实现简单的随机色块,直接上代码,如果你不嫌麻烦,可以看demo:http://codepen.io/koringz/pen/QbZEwx

/**/js注释已删

<!DOCTYPE html><html><head>  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  <meta charset="utf-8">  <title>koringz</title>  <link rel="stylesheet" href="css/demo.css"></head><body>  <div class="container">    <div class="main">      <div class="colorful"></div>    </div>  </div></body></html>

* { -webkit-box-sizing: border-box;   -moz-box-sizing: border-box;     box-sizing: border-box;}html { font-size: 10px; -webkit-tap-highlight-color: transparent;}body { margin: 0; padding: 0; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.42857143; color: #333; background-color: rgba(211,232,132,0.8);}.container { overflow: visible;}.main { position: relative; width: 90%; height:200px; margin:auto;}.colorful { overflow: visible; width: 100%; height: 100%;}.colorful > a { float: left; display: block; width: 50px; height: 50px; zoom:2;}.colorful > a:hover { -webkit-animation:infinite 2s ease-in-out start-roll; -moz-animation:infinite 2s ease-in-out start-roll;     animation:infinite 2s ease-in-out start-roll;}@-webkit-keyframes start-roll{  0% {    -webkit-transform: rotate(0deg); /*chrome*/    -moz-transform: rotate(0deg); /*火狐*/    -ms-transform: rotate(0deg); /*IE*/    transform: rotate(0deg);    -webkit-transition: opacity .3s linear;    transition: opacity .3s linear;    opacity: .5;    filter: alpha(opacity=50);    zoom:1;  }  50% {    -webkit-transform: rotate(180deg); /*chrome*/    -moz-transform: rotate(180deg); /*火狐*/    -ms-transform: rotate(180deg); /*IE*/    transform: rotate(180deg);    -webkit-transition: opacity 1s linear;    transition: opacity 1s linear;    opacity: 1;    filter: alpha(opacity=100);     zoom:2;  }  100% {    -webkit-transform: rotate(360deg); /*chrome*/    -moz-transform: rotate(360deg); /*火狐*/    -ms-transform: rotate(360deg); /*IE*/    transform: rotate(360deg);    -webkit-transition: opacity .3s linear;    transition: opacity .3s linear;    opacity: .5;    filter: alpha(opacity=50);    zoom:1;  }}@-moz-keyframes start-roll{  0% {    -webkit-transform: rotate(0deg); /*chrome*/    -moz-transform: rotate(0deg); /*火狐*/    -ms-transform: rotate(0deg); /*IE*/    transform: rotate(0deg);    -webkit-transition: opacity .3s linear;    transition: opacity .3s linear;    opacity: .5;    filter: alpha(opacity=50);  }  50% {    -webkit-transform: rotate(180deg); /*chrome*/    -moz-transform: rotate(180deg); /*火狐*/    -ms-transform: rotate(180deg); /*IE*/    transform: rotate(180deg);    -webkit-transition: opacity 1s linear;    transition: opacity 1s linear;    opacity: .5;    filter: alpha(opacity=50);  }  100% {    -webkit-transform: rotate(360deg); /*chrome*/    -moz-transform: rotate(360deg); /*火狐*/    -ms-transform: rotate(360deg); /*IE*/    transform: rotate(360deg);    -webkit-transition: opacity .3s linear;    transition: opacity .3s linear;    opacity: .5;    filter: alpha(opacity=50);  }}@keyframes start-roll{  0% {    -webkit-transform: rotate(0deg); /*chrome*/    -moz-transform: rotate(0deg); /*火狐*/    -ms-transform: rotate(0deg); /*IE*/    transform: rotate(0deg);    -webkit-transition: opacity .3s linear;    transition: opacity .3s linear;    opacity: .5;    filter: alpha(opacity=50);  }  50% {    -webkit-transform: rotate(180deg); /*chrome*/    -moz-transform: rotate(180deg); /*火狐*/    -ms-transform: rotate(180deg); /*IE*/    transform: rotate(180deg);    -webkit-transition: opacity 1s linear;    transition: opacity 1s linear;    opacity: .5;    filter: alpha(opacity=50);  }  100% {    -webkit-transform: rotate(360deg); /*chrome*/    -moz-transform: rotate(360deg); /*火狐*/    -ms-transform: rotate(360deg); /*IE*/    transform: rotate(360deg);    -webkit-transition: opacity .3s linear;    transition: opacity .3s linear;    opacity: .5;    filter: alpha(opacity=50);  }}

(function (window) {  var document = window.document;  function on(elem, evtnm, eventhd) {    var onevtnm = 'on' + evtnm;    elem[onevtnm] = eventhd;  }  function grc() {    var val = [], i = 0;    while (++i <= 3) {      val.push(Math.floor(Math.random() * 255));    }    return 'rgb(' + val.join() + ')';  }  function fbc() {    var el = document.querySelectorAll('.colorful')[0],      total = Math.floor(el.offsetWidth / 50) * Math.floor(el.offsetHeight / 50),      df = document.createDocumentFragment(),      a;    while (total-- > 0) {      a = document.createElement('a');      a.style.backgroundColor = grc();      df.appendChild(a);    }    el.appendChild(df);  }  on(window, 'load', function () {    fbc();  });})(window)

声明:原本想在@keyframe{}内部添加zoom属性放大,结果效果不显示放大,放外面可以放大,好搜搜了一下没有找到原因不能的原因。当然其他方法也不是不行。