鼠标事件的拖拽

 <!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>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. tab列表折叠效果 html: 能源系统事业部 岗位名称: 工作地点 岗位名...
    lilyping阅读 5,921评论 0 1
  • 1、垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,...
    kiddings阅读 8,419评论 0 11
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 5,942评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 6,885评论 0 11
  • 宝贝,今天的5分钟 我们的生活中总是不可避免碰到很多很多这样奇奇怪怪的人,为了很多不得已的理由我们需要忍受他们,但...
    握着荆条阅读 1,391评论 0 0

友情链接更多精彩内容