您的位置:首页 > Web前端 > JavaScript

javascript实现简单加载随机色方块

2015-12-25 09:15 676 查看

用碎片加载小方块实现简单的随机色块,直接上代码:
效果图:

具体代码:

<!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>

css代码:

* {
-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);
}
}

js代码:

(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)

希望本文所述对大家学习javascript程序设计有所帮助。

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript 加载