<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#box {
width: 500px; height: 350px; border: 1px solid black;
margin: 100px auto;
position: relative;
}
#ball {
width: 20px; height: 20px; border-radius: 50%;
position: absolute;
background-color: red;
}
#rec {
width: 100px; height: 20px; background-color: teal;
position: absolute;
/* top: 480px; */
bottom: 0;
left: 200px;
}
.brick {
width: 98px; height: 20px;
border: 1px solid black;
float: left;
}
</style>
<script>
window.onload = function() {
var box = document.getElementById("box");
var ball = document.getElementById("ball");
var rec = document.getElementById("rec");
for(var i = 0; i < 30; i ) {
var div = document.createElement("div");
div.className = "brick";
box.appendChild(div);
}
var bricks = document.getElementsByClassName("brick");
for(var i = 0; i < bricks.length; i ) {
bricks[i].style.backgroundColor = randomColor();
}
for(var i = 0; i < bricks.length; i ) {
bricks[i].style.left = bricks[i].offsetLeft "px";
bricks[i].style.top = bricks[i].offsetTop "px";
}
for(var i = 0; i < bricks.length; i ) {
bricks[i].style.position = "absolute";
}
var timer = null;
var leftSpeed = parseInt(Math.random() * 4) 5;
var topSpeed = parseInt(Math.random() * 3) 3;
var isYes = true;
ball.style.top = bricks[bricks.length - 1].offsetTop parseInt(getStyle(bricks[bricks.length - 1], "height")) 1 "px";
clearInterval(timer);
timer = setInterval(function() {
if(ball.offsetLeft < 0) {
leftSpeed = Math.abs(leftSpeed);
}
if(ball.offsetTop < 0) {
topSpeed = Math.abs(topSpeed);
}
if(ball.offsetLeft >= parseInt(getStyle(box, "width")) - parseInt(getStyle(ball, "width"))) {
leftSpeed = -Math.abs(leftSpeed);
}
if(ball.offsetTop >= parseInt(getStyle(box, "height")) - parseInt(getStyle(ball, "height"))) {
topSpeed = -Math.abs(topSpeed);
alert("GAME OVER");
clearInterval(timer);
// ball.style.top = bricks[bricks.length - 1].offsetTop parseInt(getStyle(bricks[bricks.length - 1], "height")) 1 "px";
window.location.reload();
}
if((rec.offsetLeft - ball.offsetLeft <= 10 && rec.offsetLeft - ball.offsetLeft >= -90) && (ball.offsetTop >= parseInt(getStyle(box,"height")) - 40)){
topSpeed = -Math.abs(topSpeed);
}
for(let i = 0; i < bricks.length; i ) {
if((bricks[i].offsetLeft - ball.offsetLeft <= 10 && bricks[i].offsetLeft - ball.offsetLeft >= -90) && (ball.offsetTop <= bricks[i].offsetTop parseInt(getStyle(bricks[i], "height")))){
topSpeed = Math.abs(topSpeed);
// bricks[i].style.display = "none";
bricks[i].parentNode.removeChild(bricks[i]);
// alert(i);
// bricks[i].style.backgroundColor = "black";
break;
// if(!isNone(bricks[i])) {
// isYes = false;
// break;
// }
}
}
if(bricks.length == 0) {
alert("恭喜你赢了!");
clearInterval(timer);
window.location.reload();
}
/* for(let i = 0; i < bricks.length; i ) {
if(!isNone(bricks[i])) {
isYes = false;
break;
}
} */
// if(isYes == true) {
// alert("恭喜过关!");
// ball.style.top = bricks[bricks.length - 1].offsetTop parseInt(getStyle(bricks[bricks.length - 1], "height")) 1 "px";
// window.location.reload();
// }
ball.style.left = ball.offsetLeft leftSpeed "px";
ball.style.top = ball.offsetTop topSpeed "px";
}, 30);
rec.onmousedown = function(ev) {
var e = ev || window.event;
var offsetX = e.clientX - rec.offsetLeft;
document.onmousemove = function(ev) {
var e = ev || window.event;
var l = e.clientX - offsetX;
if(l <= 0) {
l = 0;
}
if(l >= parseInt(getStyle(box, "width")) - parseInt(getStyle(rec, "width"))) {
l = parseInt(getStyle(box, "width")) - parseInt(getStyle(rec, "width"));
}
rec.style.left = l "px";
}
document.onmouseup = function() {
document.onmousemove = null;
}
}
}
function getStyle(node, cssStyle){
if(node.currentStyle){
return node.currentStyle[cssStyle];
}else{
return getComputedStyle(node)[cssStyle];
}
}
function randomColor(){
var str = "rgba(" parseInt(Math.random() * 256) "," parseInt(Math.random() * 256) "," parseInt(Math.random() * 256) ",1)";
return str;
}
function isNone(node) {
if(node.style.display == "none") {
return true;
}else {
return false;
}
}
</script>
</head>
<body>
<div id="box">
<div id="ball"></div>
<div id="rec"></div>
</div>
</body>
</html>
网友评论
我要评论