美文网首页
js鼠标拖拽

js鼠标拖拽

作者: 岳小弟 | 来源:发表于2018-06-05 14:39 被阅读0次

<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>*{margin: 0;padding: 0;}</style>
</head>
<body>
<div id="demo" style="position:absolute;width: 100px;height: 100px;background: #ccc;border:solid 1px #ccc;">按住左键拖动</div>
</body>
<script>
window.onload = function() {
//用于确定是否是拖拽的对象
var drag;
//鼠标位于目标元素上的时候距离目标元素的位置
var x,y;
//取得元素
var ele = document.getElementById('demo');

    //鼠标按下去  
    ele.onmousedown = function(evt) {  
        //取得事件对象  
        _event = evt || window.event;  
        //设置drag元素  
        target = _event.target || _event.srcElement;  
        x = _event.clientX - target.offsetLeft;  
        y = _event.clientY - target.offsetTop;  
        drag = target;  
    }  

    //鼠标移动  
    document.onmousemove = function(evt) {  
        //确定鼠标是在目标元素上按下去后才开始移动  
        if(drag) {  
            _event = evt || window.event;  

            //设置边界  
            var left = _event.clientX - x;  
            var top = _event.clientY - y;  
            body = document.documentElement || document.body;  
            if (left < 0) left = 0;  
            if (left > body.offsetWidth - drag.offsetWidth) left = body.offsetWidth - drag.offsetWidth;  
            if (top < 0) top = 0;  
            if (top > (body.offsetHeight - drag.offsetHeight)) top = (body.offsetHeight - drag.offsetHeight);  

            //设置样式  
            drag.style.cursor = 'move';  
            drag.style.border = 'dashed 1px red';  
            drag.style.left = left + 'px';  
            drag.style.top = top + 'px';  
        }  
    }  

    //松开鼠标  
    document.onmouseup = function(evt) {  
        if(drag) {  
            //卸载样式  
            drag.style.cursor = '';  
            drag.style.border = 'dashed 1px #ccc';  
        }  
        drag = null;  
    }  

}  

</script>
</html>

相关文章

  • js实现拖拽

    ①鼠标按下+鼠标移动 → 拖拽②鼠标松开 → 无拖拽③鼠标偏移 → 拖拽距离 js实现 ① onmousedown...

  • js鼠标拖拽

    *{margin: 0;padding: 0;} 按住左键拖动 window.onload = func...

  • js鼠标拖拽

    Document .fours{ position: abs...

  • 怎么区分鼠标是单击还是拖动?

    js的鼠标事件 拖拽常用事件 onmousedown 鼠标按下触发事件onmousemove 鼠标按下时持续触发事...

  • js鼠标拖拽事件

    只记录left,top同理。clientX:返回鼠标相对于浏览器的水平坐标;offsetLeft:返回当前对象距离...

  • vue拖拽元素

    实现目的 代码 实现鼠标按住title可以拖拽set模块。 drag.js 参数e是鼠标点击event,参数a是需...

  • 原声js-鼠标拖拽

    css

  • 原生js鼠标拖拽效果

    常用的鼠标事件有onmousedown(鼠标按下)、onmousemove(鼠标拖动)、onmouseup(鼠标弹...

  • 实现可拖拽插件

    一、js拖拽插件的原理常见的拖拽操作是什么样的呢?整过过程大概有下面几个步骤: 1、用鼠标点击被拖拽的元素 2、按...

  • js拖拽

    开发了那么久,对于js实现拖拽多少都写过,用于实际项目却没有。 先看一下之前写的: 如果鼠标慢慢移动,拖拽是没有任...

网友评论

      本文标题:js鼠标拖拽

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