zoukankan      html  css  js  c++  java
  • 关于弹出层的拖拽,封装

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            *{
                margin: 0;
                padding: 0;
            }
            html{
                height: 100%;
            }
            body{
                width: 100%;
                height: 100%;
                position: relative;
            }
            #test{
                width: 100px;
                height: 100px;
                background: #000;
                position: absolute;
                /*transform: translate(-50%,-50%);*/
            }
            #p{
                width: 100%;
                height: 20px;
                background: red;
            }
            .close{
                display: inline-block;
                width: 20px;
                height: 100%;
                background:#ddd;
                cursor: pointer;
            }
        </style>
    </head>
    <body>
        <div id="test">
            <p id="p">
                <span class="close">X</span>
            </p>
        </div>
    </body>
    <script>
        var oDrag = document.getElementById("test");
        var oTitle = document.getElementById("p");
        var closeEle = document.getElementsByClassName("close")[0];
        oDrag.style.left=(document.body.offsetWidth-oDrag.offsetWidth)/2+"px";
        oDrag.style.top=(document.body.offsetHeight-oDrag.offsetHeight)/2+"px";
        window.onresize=function () {
            oDrag.style.left=(document.body.offsetWidth-oDrag.offsetWidth)/2+"px";
            oDrag.style.top=(document.body.offsetHeight-oDrag.offsetHeight)/2+"px";
            drag(oTitle, oDrag,closeEle);
        };
        window.onload=function () {
            drag(oTitle, oDrag,closeEle);
        };
        function drag(oTitle,oDrag,closeEle) {
            closeEle.onclick=function () {
                    oDrag.style.display='none';
                    this.onclick=null;
            };
            oTitle.onmousedown=function(event){
                oTitle.style.cursor = "move";
                var event = event || window.event;
                var disX=event.clientX-oDrag.offsetLeft;//鼠标在屏幕中的坐标减去元素距离屏幕的左边距,等于这个鼠标在div元素中距离div最左边的的左偏移量
                var disY=event.clientY-oDrag.offsetTop;
                console.log(disX,disY)
    //鼠标移动,窗口随之移动     onmousemove在有物体移动是才执行alert事件;
                document.onmousemove=function(event){
                    var event = event || window.event;
                    maxW=document.documentElement.clientWidth-oDrag.offsetWidth;//div元素在屏幕中的最大left。
                    maxH=document.documentElement.clientHeight-oDrag.offsetHeight;
                    posX=event.clientX-disX;//鼠标坐标减去鼠标在div元素中的偏移坐标,相当于div元素距离屏幕的最左的距离。也就是left
                    posY=event.clientY-disY;//鼠标坐标减去鼠标在div元素中的偏移坐标,相当于div元素距离屏幕的最顶部的距离。也就是top
                    if(posX<0){
                        posX=0;
                    }else if(posX>maxW){
                        posX=maxW;
                    }
                    if(posY<0){
                        posY=0;
                    }else if(posY>maxH){
                        posY=maxH;
                    }
                    oDrag.style.left=posX+'px';
                    oDrag.style.top=posY+'px';
                };
    //鼠标松开,窗口将不再移动
                document.onmouseup=function(){
                    document.onmousemove=null;
                    document.onmouseup=null;
                }
            }
        }
    </script>
    </html>
  • 相关阅读:
    最近在搞微信支付,说说流程,免得遗忘
    好记性不如烂笔头-Mysql查找如何判断字段是否包含某个字符串
    用jquery操作字体颜色覆盖当前页面的css设置
    页面白屏并且报错PHP Parse error: syntax error, unexpected end of file in 试了很久总算解决了
    bootstrap的datetimepicker.js的结束时间大于开始时间,当前日期之前的代码
    使用ClassLoader类装载器获取系统资源
    关于App class loader的总结
    ClassLoader 详解及用途(写的不错)
    webRequest
    Tomcat学习之ClassLoader
  • 原文地址:https://www.cnblogs.com/joesbell/p/5887177.html
Copyright © 2011-2022 走看看