zoukankan      html  css  js  c++  java
  • 用js做一个方块 在网页窗口运动 遇到边角反弹

    //css代码

    <style>
      div{
      100px;
      height: 100px;
      background-color: brown;
      position: absolute;
      }
      </style>
      </head>
      <body>
      <button>移动</button>
      <div style="top: 30px;left:8px"></div>
      <script>
      let btn = document.getElementsByTagName("button")[0];//获取按钮
      let div = document.getElementsByTagName("div")[0];//获取移动的div
      let switchDirX = 'on', switchDirY = 'on';//设置两个标识来跟踪x,y轴的运动情况
      let move = function(){
      let divLeft = parseInt(div.style.left);//将获取到的left值取整。去除后面的px单位
      let divTop = parseInt(div.style.top);//将获取到的top值取整,去除后面的px单位
      //x轴运动
      if(divLeft<innerWidth - 100 && switchDirX === 'on'){
      div.style.left = divLeft + 1 + "px";
      }
      else if(divLeft === innerWidth - 100 || switchDirX === 'off'){
      switchDirX = 'off';
      div.style.left = divLeft - 1 + "px";
      if(divLeft === 0){
      switchDirX = 'on';
      }
      }
      //y轴运动
      if(divTop<innerHeight - 100 && switchDirY === 'on'){
      div.style.top = divTop + 1 + "px";
      }
      else if(divTop === innerHeight - 100 || switchDirY === 'off'){
      switchDirY = 'off';
      div.style.top = divTop - 1 + "px";
      if(divTop === 0){
      switchDirY = 'on'
      }
      }
      }
      btn.onclick = function(){
      if (btn.innerHTML === "移动"){
      btn.innerHTML = "暂停";
      stopTimer = setInterval(move,0.00000000001);
      }
      else{
      btn.innerHTML = "移动";
      clearInterval(stopTimer);
      }
      }
      </script>
  • 相关阅读:
    js object 常用方法总结
    深入研究js中的位运算及用法
    input事件中文触发多次问题研究
    景点地图开发实战
    炫酷线条动画--svg
    转:绝对干货--WordPress自定义查询wp_query所有参数详细注释
    canvas实例 ---- 制作简易迷宫(一)
    炫酷弹窗效果制作
    js排序算法总结—冒泡,快速,选择,插入,希尔,归并
    js 实现 promise
  • 原文地址:https://www.cnblogs.com/gao2/p/11427629.html
Copyright © 2011-2022 走看看