(十二)原生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)
      
    }
   }

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

相关推荐
Sun_light2 分钟前
链表 --- 高效离散存储的线性数据结构
前端·javascript·算法
北京_宏哥2 分钟前
🔥Python零基础从入门到精通详细教程5-数据类型的转换- 中篇
前端·python·面试
我想说一句2 分钟前
盒模型大揭秘:从快递盒到网页布局的奇妙之旅
前端·javascript·面试
干就完了115 分钟前
vue3+Vite/Vue CLI脚手架创建新项目+路由配置详细步骤
前端·vue.js
bitbitDown17 分钟前
监听一个对象,vue watch 新旧值怎么会相等呢
前端·javascript·vue.js
前端日常开发17 分钟前
提升前端项目体验,Vite 打包更新通知方案
前端
LuckySusu18 分钟前
【CSS篇】CSS 选择器及其优先级详解:掌握样式覆盖的底层逻辑
前端·css
LuckySusu19 分钟前
【CSS篇】CSS 中display属性详解:掌握元素的显示行为
前端·css
Yolo_202119 分钟前
Angular: 状态管理
前端
然我20 分钟前
前端盒模型:从文档流到层叠上下文
前端·css·html