美文网首页
鼠标事件的拖拽

鼠标事件的拖拽

作者: zjxl | 来源:发表于2017-12-25 12:55 被阅读0次
 <!DOCTYPE html>
 <html lang="en">
 <head>
<meta charset="UTF-8">
<title>Document</title>
<style>
    .box{
        width:200px;
        height:200px;
        background: orange;
        border:10px solid green;
        cursor:pointer;
        /*鼠标上面变小手*/
        position:absolute;
    }
</style>
</head>
<body>
     <!-- 思路:
    1:创建一个div,拖拽对象
    2:div的css样式
    3:鼠标按下事件:获取鼠标位置,鼠标在div上的位置,窗口的位置
    4:鼠标移动事件:
    5鼠标松开事件:获取此时鼠标的位置,定位此时盒子的位置。
     -->
    <h1>拖拽</h1>
    <hr>
    <div class="box" id="box"></div>
<script>
    //获取box元素
    var div = document.getElementById('box');
    //给元素绑定 鼠标按键按下事件
    div.onmousedown = function(env){
        //改变背景色
        div.style.backgroundColor = "#999";
        //获取event对象
        var e = env || window.event;
        //求出 鼠标在 div上的位置
        var left = e.clientX - div.offsetLeft;
        var top = e.clientY - div.offsetTop;

        //求窗口的宽高
        var w = window.innerWidth;
        var h = window.innerHeight;


        //绑定鼠标 移动事件
        document.onmousemove = function(en){
            //获取event对象
            var e = en || window.event;
            //获取鼠标坐标
            var x = e.clientX;
            var y = e.clientY;
            //设置 div 的位置
            div.style.left = Math.min(Math.max(x - left, 0), w - 220) +'px';
            div.style.top = Math.min(Math.max(y - top, 0), h - 220)+ 'px';
        }
    }

    //鼠标按键抬起事件
    div.onmouseup = function(){
        div.style.backgroundColor = "orange";
        //解除 onmousemove 事件绑定
        document.onmousemove = function(){
            
        }
    }

</script>
</body>
</html>

相关文章

  • web前端-原生鼠标拖拽效果

    鼠标拖拽效果分为3个事件 鼠标按下事件onmousedown, 事件源是点击的对象, 就是我们要拖拽的对象 鼠标移...

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

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

  • 31.JS

    118. 事件的拖拽 120. 鼠标滚动事件

  • July 30-day13-Python中Pygame

    触碰事件 有鼠标、键盘等等 对鼠标事件的应用 鼠标点击事件的应用(对鼠标的拖拽) 字体动画的效果 键盘事件的应用 ...

  • 鼠标事件的拖拽

  • JavaScrip--事件应用

    事件应用 拖拽 拖拽原理 三大事件 -鼠标和Div的相对距离不变 把拖拽加到document上 如果拖得太快,会移...

  • JavaScript限定范围拖拽及自定义滚动

    学习笔记:拖拽div要发生三个事件: 鼠标按下onmousedown; 鼠标移动onmousemove; 鼠标松开...

  • js实现拖拽

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

  • js鼠标拖拽事件

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

  • 事件应用

    拖拽 拖拽原理 三大事件 -鼠标和Div的相对距离不变 把拖拽加到document上 如果拖得太快,会移出div,...

网友评论

      本文标题:鼠标事件的拖拽

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