zoukankan      html  css  js  c++  java
  • 元素跟随鼠标移动

    在前一篇里写了一个移动端的移动和碰撞的小例子,这一次来写写PC端的。代码其实差不多

    ①首先我们在页面中创造一个div。可移动的一个块<div id="box"></div>

    ②引入jquery.min.js

    ③css样式,要注意的是这个元素身上一定要生成绝对定位元素,给left/top值

    ④开始写事件

    逻辑1.鼠标点击,获取落下的坐标

      2.移动时,鼠标落下的坐标不变,left/top值跟随鼠标移动改变数值。同时确保元素不可超过可见区域

      3.鼠标松开,位置不变

    js代码

    var $left,$top;
    window.onload=function(){
    // 手指点击事件
      $("#box").on("mousedown",function(e){
        var ev= e||window.event;
        var target = ev.target;
        $left =ev.clientX - target.offsetLeft;//鼠标当前点击的X点-元素距离屏幕的位置=鼠标在元素上的位置
        $top = ev.clientY - target.offsetTop;
        $(document).bind('mousemove', function (e) {
          var ev= e||window.event;
          var oLeft = ev.clientX - $left;//鼠标当前点击的X点-鼠标在元素的位置= 距离元素的位置
          var oTop = ev.clientY - $top;
          // 判断鼠标移动的距离限制不得超出可视区域
          if(oLeft <= 0) {
            oLeft = 0;
          }
          if (oTop <= 0) {
            oTop = 0;
          }
          if(oLeft > document.documentElement.clientWidth -$("#box").outerWidth()) {
            oLeft = document.documentElement.clientWidth- $("#box").outerWidth();
          }
          if(oTop > document.documentElement.clientHeight - $("#box").outerHeight()){
            oTop = document.documentElement.clientHeight - $("#box").outerHeight();
          }

          $("#box").css({
            "left": oLeft+"px",
            "top":oTop+"px"
          });
        })
      })
      $(document).on('mouseup',function () {
        $(this).unbind('mousemove')
      })

    }

  • 相关阅读:
    什么是HTTP?
    什么是OSI的第7层
    OSI7层模型
    什么是WAF?
    什么是Mirai僵尸网络
    什么是僵尸网络?
    洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
    如何给数组的结构体排序 关于sort用法
    洛谷 P1803 凌乱的yyy / 线段覆盖
    洛谷 P1007 独木桥
  • 原文地址:https://www.cnblogs.com/khun/p/9171783.html
Copyright © 2011-2022 走看看