這兩天解除了下 html 看到想起來 iOS 上有個遊戲感受挺好的,因而想着用 js 寫寫試試, 結果實現了, 多餘的也不說了, 直接上代碼 主要地方都有註釋javascript
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>碰壁反彈</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
body {
background: lightblue;
}
.wrap {
width: 500px;
height: 300px;
background: limegreen;
position: relative;
margin: 20% auto; /*水平居中*/
}
.wrap .box {
width: 50px;
height: 50px;
background: cyan;
border-radius: 50%;
position: absolute;
}
</style>
</head>
<body>
<!--邊框-->
<div class="wrap">
<!--小球-->
<div class="box"></div>
</div>
</body>
<script type="text/javascript">
var wrap = document.querySelector(".wrap");
var box = document.querySelector(".wrap .box");
var speedX = 5; // 速度
var speedY = 2;
// wrap 不帶邊線的寬度 減去 box 帶邊線的寬度 獲得最大的運動寬度
var maxWidth = wrap.clientWidth - box.offsetWidth;
// wrap 不帶邊線的高度 減去 box 帶邊線的高度 獲得最大的運動高度
var maxHeight = wrap.clientHeight - box.offsetHeight;
// 獲取小球的距離(位置)
var top1 = 0; // Y
var left1 = 0; // X
// 小球移動的方法
function move() {
left1 += speedX;
top1 += speedY;
box.style.top = top1 + "px";
box.style.left = left1 + "px";
// 判斷左右邊界 若是 box 邊緣到 wrap 左右邊界 速度取反 改變方向
if (left1 <= 0 || left1 >= maxWidth) {
speedX *= -1;
// 判斷上下邊界 若是 box 邊緣到 wrap 上下邊界 速度取反 改變方向
} else if (top1 <= 0 || top1 >= maxHeight) {
speedY *= -1;
}
}
// 添加定時器 並調用移動的方法
var timer = setInterval(function() {
move();
}, 35);
</script>
</html>
整體上感受 html 要比 iOS 方便的多, 代碼簡化了好多, 並且應用範圍更廣,之後更要多多的學習css