美文网首页
用js简单生成一个拖拽事件

用js简单生成一个拖拽事件

作者: 光年之外iii | 来源:发表于2019-10-27 18:46 被阅读0次

模仿windows界面的鼠标拖拽,在网页上生成一个鼠标点击拖拽事件,
需要注意:需要设置一个控制的开关,判断为开时正常拖拽,判断为关时,拖拽鼠标获得的矩形立即消失;
完整代码:

<!DOCTYPE html>
<html lang="en">

<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>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        div {
            position: absolute;
            width: 1px;
            height: 1px;
            background: pink;
            border: solid 1px #54a;
        }
    </style>
</head>

<body>
    <div></div>
    <script>
        var div = document.querySelector('div');
        var f
        //设置一个开关
        var w = 0,
            h = 0,
            l = 0,
            t = 0;
        var movex = 0,
            movey = 0,
            downx = 0,
            downy = 0;
        window.onmousedown = (e) => {
            f = true;
            e = window.event || e.event;
            //当点击按下时,开关开启
            downx = e.clientX;
            downy = e.clientY;
            //获取按下的点的坐标
            window.onmousemove = (e) => {
                e = window.event || e.event
                movex = e.clientX;
                movey = e.clientY;
                //获取终止位置的点的坐标
                l = Math.min(movex, downx);
                t = Math.min(movey, downy);
                w = Math.abs(movex - downx);
                h = Math.abs(movey - downy);
                //计算出移动的长和宽
                if (f) {
                    div.style.cssText = `left:${l}px;top:${t}px;width:${w}px;height:${h}px`;
                }
                //当开关为开时,div中生成一个矩形
            }
        }
        window.onmouseup = (e) => {
            f = false
            e = window.event || e.event
            div.style.cssText = ``;
            //当鼠标抬起,开关为关;生成的矩形消失

        }
    </script>
</body>

</html>

相关文章

  • 用js简单生成一个拖拽事件

    模仿windows界面的鼠标拖拽,在网页上生成一个鼠标点击拖拽事件,需要注意:需要设置一个控制的开关,判断为开时正...

  • 拖拽

    一、JS拖拽JS里拖拽三事件, onmousedown onmousemove onmouseup 是实现交互性效...

  • h5拖拽相关事件

    拖拽 Sortable.js插件拖拽的时候主要由这几个事件完成,

  • Drag Drop---API

    在h4标准中,我们定义个拖拽事件是很麻烦的,用原生的js来实现拖拽的效果。我们需要计算拖拽的元素的坐标位置和距离之...

  • js:拖拽事件

    拖拽事件 ondragstart当拖拽元素被开始拖拽时,event:拖拽元素。[从操作系统向浏览器拖拽文件不会触发...

  • 拖拽------阻止浏览器默认事件

    用原生js写一个拖拽,需要考虑到兼容的问题,事件绑定的问题,浏览器默认事件的问题。首先需要用到Event 对象,代...

  • 用js实现简单的拖拽

    布局就不写了看看js吧

  • 用vue.js写一个营销号生成器有多简单

    用vue.js写一个营销号生成器有多简单 背景 目前三大前端js框架为: Angular.js, React.js...

  • 简单js拖拽

  • 第八章 d3拖拽和事件及缩放

    简单的拖拽举例 drag.container(svg) //设置拖拽事件的相对父元素 事件 缩放d3.zoom()...

网友评论

      本文标题:用js简单生成一个拖拽事件

      本文链接:https://www.haomeiwen.com/subject/aglmvctx.html