(十二)原生js案例之跳舞的小方块

鼠标点击,小方块掉落下来,再次点击全部返回原来的位置,再随意点击,小方块上下来回运动

实现效果

代码实现

  • 必要的css
css 复制代码
.box{
      width: 50px;
      height: 50px;
      background-color: #964DDD;
      margin-right: 10px;
      position: absolute;
      top:10px;
      color: #fff;
      text-align: center;
      line-height: 50px;
    }
  • 逻辑实现
js 复制代码
window.onload = function(){
    let str = ''
    for (var i = 0; i < 20; i++) {
        str += `<div class="box" style="left:${60*i+10}px">${i+1}</div>`
    }
    document.body.innerHTML = str

   // 获取所有div元素
   let boxs = document.getElementsByClassName('box')
    let num = 0,timer = null,isFlag = false
    document.onclick = function(e){
      isFlag = !isFlag
      clearInterval(timer)
      timer = setInterval(function(){
        doMove(boxs[num],'top',20,isFlag ? 300:10)
        isFlag ? num++ : num--
        if(num==boxs.length || num < 0){
          clearInterval(timer)
          isFlag ? num = boxs.length-1 : num = 0
        }
      },100)
      
    }
   }

可以拓展下,做成合适的业务功能

相关推荐
清灵xmf15 分钟前
TypeScript 类型进阶指南
javascript·typescript·泛型·t·infer
小白学大数据21 分钟前
JavaScript重定向对网络爬虫的影响及处理
开发语言·javascript·数据库·爬虫
qq_3901617730 分钟前
防抖函数--应用场景及示例
前端·javascript
334554321 小时前
element动态表头合并表格
开发语言·javascript·ecmascript
John.liu_Test1 小时前
js下载excel示例demo
前端·javascript·excel
Yaml41 小时前
智能化健身房管理:Spring Boot与Vue的创新解决方案
前端·spring boot·后端·mysql·vue·健身房管理
PleaSure乐事1 小时前
【React.js】AntDesignPro左侧菜单栏栏目名称不显示的解决方案
前端·javascript·react.js·前端框架·webstorm·antdesignpro
哟哟耶耶1 小时前
js-将JavaScript对象或值转换为JSON字符串 JSON.stringify(this.SelectDataListCourse)
前端·javascript·json
getaxiosluo1 小时前
react jsx基本语法,脚手架,父子传参,refs等详解
前端·vue.js·react.js·前端框架·hook·jsx
理想不理想v1 小时前
vue种ref跟reactive的区别?
前端·javascript·vue.js·webpack·前端框架·node.js·ecmascript