zoukankan      html  css  js  c++  java
  • 鼠标事件-拖拽5(带虚线框的拖拽)

    <!DOCTYPE html>
    <html>

    <head>
    <meta charset="UTF-8">
    <title></title>
    <style>
    #div2 {
    150px;
    height: 150px;
    position: absolute;
    background: #CCCCCC;
    }
    .box{
    border: 1px dashed black;
    position: absolute;
    }
    </style>
    <script>
    window.onload = function() {

    var div2 = document.getElementById('div2');
    var x = 0;
    var y = 0;

    document.onmousedown = function(ev) {
    //获取具有兼容性的事件
    var oEvent = ev || event;

    //x、y分别代表,鼠标与div之间的横坐标和纵坐标
    x = oEvent.clientX - div2.offsetLeft;
    y = oEvent.clientY - div2.offsetTop;


    //创建一个div元素
    var box = document.createElement('div');
    //将创建好的样式赋给box
    box.className = 'box';
    //将div的长宽赋给box
    box.style.width = div2.offsetWidth - 2 + 'px';
    box.style.height = div2.offsetHeight - 2 + 'px';
    //按下鼠标,将div当前的位置赋给box,防止每次点击时,虚线框都会在左上角闪一下
    box.style.left = div2.offsetLeft + 'px';
    box.style.top = div2.offsetTop + 'px';
    //将box插入到页面
    document.body.appendChild(box);

    //mouseMove函数
    document.onmousemove = function(ev) {
    var oEvent = ev || event;

    //m、n分别代表div的横、纵坐标
    var m = oEvent.clientX - x;
    var n = oEvent.clientY - y;

    //设置div的坐标
    box.style.left = m + 'px';
    box.style.top = n + 'px';

    };

    //mouseUp函数
    document.onmouseup = function(ev) {
    var oEvent = ev || event;

    //释放move事件,如果不释放,放开鼠标后,div仍然会跟随鼠标移动
    document.onmousemove = null;
    document.onmouseup = null;

    //放开鼠标后,将虚线框的位置赋给div2
    div2.style.left = box.offsetLeft + 'px';
    div2.style.top = box.offsetTop + 'px';

    //并且移出虚线框
    document.body.removeChild(box);
    }

    return false;
    };

    };
    </script>
    </head>

    <body>
    <div id="div2"></div>
    </body>

    </html>

  • 相关阅读:
    hdu 5723 Abandoned country 最小生成树 期望
    OpenJ_POJ C16G Challenge Your Template 迪杰斯特拉
    OpenJ_POJ C16D Extracurricular Sports 打表找规律
    OpenJ_POJ C16B Robot Game 打表找规律
    CCCC 成都信息工程大学游记
    UVALive 6893 The Big Painting hash
    UVALive 6889 City Park 并查集
    UVALive 6888 Ricochet Robots bfs
    UVALive 6886 Golf Bot FFT
    UVALive 6885 Flowery Trails 最短路
  • 原文地址:https://www.cnblogs.com/youcandomore/p/6780206.html
Copyright © 2011-2022 走看看