• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

移动的盒子

开发技术 开发技术 2周前 (04-08) 8次浏览
<!–
 * @Author: your name
 * @Date: 2021-04-08 14:30:47
 * @LastEditTime: 2021-04-08 19:16:21
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: 二阶段4.8陈志宝移动的盒子.html
–>
<!DOCTYPE html>
<html lang=”en”>
  <head>
    <meta charset=”UTF-8″ />
    <meta http-equiv=”X-UA-Compatible” content=”IE=edge” />
    <meta name=”viewport” content=”width=device-width, initial-scale=1.0″ />
    <title>Document</title>
    <style>
      * {
        padding: 0;
        margin: 0;
      }
      .box {
        width: 800px;
        height: 500px;
        border: 10px solid black;
        margin: auto;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        top: 0;
      }
      .box1 {
        width: 30px;
        height: 30px;
        background-color: #f00;
        border: 10px solid black;
        position: absolute;
        top: 0;
        left: 0;
      }
    </style>
  </head>
  <body>
    <div class=”box”>
      <div class=”box1″></div>
    </div>
    <script>
      var oBox = document.querySelector(“.box”);
      var oBox1 = document.querySelector(“.box1”);
      var maxTop = oBox.clientHeight – oBox1.offsetHeight;
      var maxLeft = oBox.clientWidth – oBox1.offsetWidth;
      var t;
      document.onkeydown = function (e) {
        var e = event || e;
        var keyCode = e.keyCode || e.which;
        console.log(keyCode);
        clearInterval(t);
        t = setInterval(function () {
          //定义上下的方向的移动距离,是通过offsetLeft是具有定位元素的祖先元素获取的
          var left = oBox1.offsetLeft;
          var top = oBox1.offsetTop;

          if (keyCode == 38) {
            top -= 10;
          }
          if (keyCode == 40) {
            top += 10;
          }
          if (keyCode == 37) {
            left -= 10;
          }
          if (keyCode == 39) {
            left += 10;
          }
          if (left < 0) {
            left = 0;
          }
          if(top<0){
            top=0;
          }
          if (top > maxTop) {
            top = maxTop;
          }
          if (left > maxLeft) {
            left = maxLeft;
          }
          oBox1.style.cssText = `left:${left}px;top:${top}px`;
        }, 50);
      };
    </script>
  </body>
</html>

程序员灯塔
转载请注明原文链接:移动的盒子
喜欢 (0)