zoukankan      html  css  js  c++  java
  • 原生JS拖拽

    想要让整个元素移动需要三个事件:

            鼠标按下 onmousedown
            鼠标移动 onmousemove
            鼠标抬起 onmouseup
    

      

    HTML
    <div id="login" class="login">
    	<!-- 点击title拖拽 -->
            <div id="title" class="login-title">登录会员
        <!-- title end -->
                <span><a id="closeBtn" href="javascript:void(0);" class="close-login">关闭</a></span>
            </div>
            <div class="login-input-content">
                <div class="login-input">
                    <label>用户名:</label>
                    <input type="text" placeholder="请输入用户名" name="info[username]" id="username" class="list-input">
                </div>
                <div class="login-input">
                    <label>登录密码:</label>
                    <input type="password" placeholder="请输入登录密码" name="info[password]" id="password" class="list-input">
                </div>
            </div>
            <div id="loginBtn" class="login-button"><a href="javascript:void(0);" id="login-button-submit">登录会员</a></div>
        </div>
    

      

    页面效果如下:

    JS

    var login = document.querySelector('.login');//获取整个弹框的内容
    var title = document.querySelector('#title');
        title.addEventListener('mousedown',function(e){
            //当按下鼠标的时候,获取到鼠标在拖拽盒子内的坐标
            //鼠标在页面的坐标 - 大盒子距离浏览器左侧的距离
            var x = e.pageX - login.offsetLeft;
            var y = e.pageY - login.offsetTop;
    
            //鼠标移动
            document.addEventListener('mousemove',move);
    
            function move(e){
            //拖拽的盒子定位=鼠标在页面的坐标 - 鼠标在拖拽盒子的坐标
                login.style.left = e.pageX - x + 'px';
                login.style.top = e.pageY - y + 'px';
            }
    
            //当鼠标抬起的时候,将移动事件删除
            document.addEventListener('mouseup',function(){
                document.removeEventListener('mousemove',move);
            })
    
        })
    

      

    CSS

    <style>
    	   *{
                padding: 0px;
                margin: 0px;
            }
            .login {
                display: block;
                 512px;
                height: 280px;
                position: fixed;
                border: #ebebeb solid 1px;
                left: 50%;
                top: 50%;
                background: #ffffff;
                box-shadow: 0px 0px 20px #ddd;
                z-index: 9999;
                transform: translate(-50%, -50%);
            }
            .login-title {
                 100%;
                margin: 10px 0px 0px 0px;
                text-align: center;
                line-height: 40px;
                height: 40px;
                font-size: 18px;
                position: relative;
                cursor: move;
            }
            .login-input-content {
                margin-top: 20px;
            }
            .login-button {
                 50%;
                margin: 30px auto 0px auto;
                line-height: 40px;
                font-size: 14px;
                border: #ebebeb 1px solid;
                text-align: center;
            }
            .login-bg {
                display: none;
                 100%;
                height: 100%;
                position: fixed;
                top: 0px;
                left: 0px;
                background: rgba(0, 0, 0, .3);
            }
            a {
                text-decoration: none;
                color: #000000;
            }
            .login-button a {
                display: block;
            }
            .login-input input.list-input {
                float: left;
                line-height: 35px;
                height: 35px;
                 350px;
                border: #ebebeb 1px solid;
                text-indent: 5px;
            }
            .login-input {
                overflow: hidden;
                margin: 0px 0px 20px 0px;
            }
            .login-input label {
                float: left;
                 90px;
                padding-right: 10px;
                text-align: right;
                line-height: 35px;
                height: 35px;
                font-size: 14px;
            }
            .login-title span {
                position: absolute;
                font-size: 12px;
                right: -20px;
                top: -30px;
                background: #ffffff;
                border: #ebebeb solid 1px;
                 40px;
                height: 40px;
                border-radius: 20px;
            }
    </style>
    

      

     转载于:https://blog.csdn.net/weixin_47300932/article/details/110405164

  • 相关阅读:
    Oracle JET Model 数据获取与使用
    Windows 10 安装MySQL 8.0.11
    Windows安装JDK9
    Centos安装JDK
    Centos7下安装php-redis扩展及简单使用
    XAMPP开启虚拟目录
    centos7.2 环境下配置 Apache2.4 +PHP5.6+Redis+Supervisord
    CentOS 7 开放3306端口访问
    编译Apache时,如何enable所有组件
    LINUX创建www的用户组和用户,并且不允许登录权限:
  • 原文地址:https://www.cnblogs.com/smileZAZ/p/14076180.html
Copyright © 2011-2022 走看看