首页 > 网站 > WEB开发 > 正文

颜色随机的小方块

2024-04-27 14:06:33
字体:
来源:转载
供稿:网友

颜色随机的小方块

用碎片加载小方块实现简单的随机色块,直接上代码,如果你嫌麻烦,可以看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属性放大,结果效果不显示放大,放外面可以放大,好搜搜了一下没有找到原因。当然其他方法也不是不行。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表