js实现简单的div移动及随机选人

直接上代码:

<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>随机点名</title>
  <script src="./js/plugins/simditor/jquery.min.js" type="text/javascript" charset="utf-8"></script>
  <link href="css/bootstrap.css" rel="stylesheet">
  <script src="js/jquery-3.6.0.js"></script>
  <script src="js/popper.min.js"></script>
  <script src="js/bootstrap.js"></script>
</head>
<style type="text/css">
  body{
    background-color: white;
  }
  #name_div,
  #name_wrap {
    font-family: STXingkai;
  }

  #name_div {
    font-size: 20px;
  }

  #name_wrap span {
    margin: 10px;
  }

  #Gallery{
    width: 20%;
    height: 20%;
    position: fixed;
    /*left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);*/
    box-shadow: 0 0 20px black;
    background-color: black;
    color: white;
    opacity: 0.7;
  }

</style>
<body>
<div id="Gallery">
  <div id="name_wrap">

  </div>
  <div id="name_div">

  </div>
  <button type="button" id="switch_btn">start</button>

</div>

<script type="text/javascript">
  var timer = null;
  var data = ['刘德华', '周星驰', '林俊杰', '浑江龙', '大大大', '哈哈哈'];
  var str = ''
  for (let name of data) {
    str += "<span>" + name + "</span>"
  };
  document.getElementById("name_wrap").innerHTML = str;
  document.getElementById("switch_btn").onclick = function() {
    var btn_text = document.getElementById("switch_btn").innerHTML;
    switch (btn_text) {
      case 'start':
        document.getElementById("switch_btn").innerHTML = 'stop'
        timer = setInterval(function() {
          var index = (Math.random() * (data.length - 1)).toFixed(0)
          document.getElementById("name_div").innerText = '今晚吃火锅谁请客:' + data[index]
        }, 2)//这个数字来调速度
        break;
      case 'stop':
        document.getElementById("switch_btn").innerHTML = 'start'
        clearInterval(timer)
        break;
      default:
        break;
    }
  }
</script>
<script type="text/javascript">
  window.onload = function(){
    let boxx = 0;
    let boxy = 0;
    var isDown = false;
    //用于存储新的光标坐标
    let mosx = 0;
    let mosy = 0;
    let mosx2 = 0;
    let mosy2 = 0;

    //获取box
    const box = document.getElementById('Gallery');
    //box元素鼠标按下触发事件
    box.onmousedown  = function(e){

      //获取并记录鼠标第一次按下时光标的坐标
      mosx = e.pageX;
      mosy = e.pageY;

      //开关打开
      isDown = true;
    };

    //设置鼠标移动事件
    window.onmousemove = function(e){
      if (!isDown) {
        return;
      }
      //获取光标移动时光标的新坐标
      mosx2 = e.pageX;
      mosy2 = e.pageY;
      //计算box的新坐标
      boxx += (mosx2 - mosx);
      boxy += (mosy2 - mosy);
      //将光标的旧坐标更新
      mosx = mosx2;
      mosy = mosy2;
      //移动box
      box.style.top = boxy + "px";
      box.style.left = boxx + "px";
    };

    //鼠标放开触发事件
    box.onmouseup  = function(){
      isDown = false;
    };
  };
</script>
</body>
</html>

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值