js实现拖动模态框效果

 更新时间:2022年07月03日 12:39:55   作者:阿旋要毕业~  
这篇文章主要为大家详细介绍了js实现拖动模态框效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了js实现拖动模态框效果的具体代码,供大家参考,具体内容如下

1.实现效果:

点击链接,弹出模态框。点击关闭,关闭模态框。

点击标题部分,可以随意移动模态框的位置。

主要是获取鼠标位置。

2.思路:

3.代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>拖动模态框</title>
    <style>
        body {
            padding: 0;
            margin: 0;
        }
        .login {
            display: none;
            position: fixed;
            top: 50%;
            left:50%;
            box-sizing:border-box;
            width:400px;
            height: 200px;
            background-color: pink;
            box-shadow: 0px 0px 20px #ddd;
            z-index: 9999;
            transform: translate(-50%, -50%);
            /* 让一个固定定位的盒子 垂直居中 */
 
        
        }
        h4 {
            text-align: center;
            line-height: 70px;
        }
        form {
            text-align: center;
            margin-left: 40px;
        }
        a {
            text-decoration: none;
            text-align: center;
        }
        .finish {
            position: absolute;
            top:-15px;
            right:-15px;
            width: 30px;
            height: 30px;
            border: 1px solid white;
            border-radius: 50%;
            background-color: white;
            font-size: 10px;
            line-height: 30px;
        }
        .login-bg {
            display: none;
            width: 100%;
            height: 100%;
            position: fixed;
            top:0px;
            left: 0px;
            background-color: rgba(0,0,0,0.3);
        }
        .title {
            width: 400px;
            height: 50px;
            cursor: move;
            margin-top: -20px;
            height: 70px;
         
        }
    </style>
</head>
<body>
    <div class="bg">
        <div class="link"><a href="javascript:;" >点击,弹出登录框</a></div>
        <div class="login">
            <div class="finish">关闭</div>
            <div class = "title"><h4>登录会员</h4></div>
            <form action="">
                <table>
                    <tr>
                        <td>用户名:</td>
                        <td><input type="text" name="" id="" value="请输入用户名"></td>
                    </tr>
                    <tr>
                        <td>登录密码:</td>
                        <td><input type="text" name="" id="" value="请输入密码"></td>
                    </tr>
                </table>
                <input type="submit" name="" id="" value="登录会员">
            </form>
        </div>
    </div>
    <!-- 遮盖层 -->
    <div id="bg" class="login-bg"></div>
    <script>
        var a = document.querySelector('a');
        var login = document.querySelector('.login');
        var mask = document.querySelector('.login-bg');
        var finish = document.querySelector('.finish');
        a.addEventListener('click',function() {
            login.style.display = 'block';
            mask.style.display = 'block';
        });
        finish.addEventListener('click', function(){
            login.style.display = 'none';
            mask.style.display = 'none';
        })
        var title = document.querySelector('.title');
        title.addEventListener('mousedown', function(e){
            var x = e.pageX - login.offsetLeft;
            var y = e.pageY - login.offsetTop;
            // 鼠标移动的时候,把鼠标在页面中的坐标,减去 鼠标在盒子内的坐标就是模态框的left和top值。
            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);
            })
        })
    </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • js中Math之random,round,ceil,floor的用法总结

    js中Math之random,round,ceil,floor的用法总结

    本篇文章是对js中Math之random,round,ceil,floor的用法进行了总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • 用VsCode编辑TypeScript的实现方法

    用VsCode编辑TypeScript的实现方法

    这篇文章主要介绍了用VsCode编辑TypeScript的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • JavaScript使用享元模式实现文件上传优化操作示例

    JavaScript使用享元模式实现文件上传优化操作示例

    这篇文章主要介绍了JavaScript使用享元模式实现文件上传优化操作,结合实例形式分析了javascript基于享元模式进行文件上传优化操作的原理、步骤及相关使用技巧,需要的朋友可以参考下
    2018-08-08
  • JavaScript实现的浏览器下载文件的方法

    JavaScript实现的浏览器下载文件的方法

    本文通过一段简单的代码给大家介绍了js实现浏览器下载文件的方法,需要的的朋友参考下吧
    2017-08-08
  • Javascript 构造函数,公有,私有特权和静态成员定义方法

    Javascript 构造函数,公有,私有特权和静态成员定义方法

    其中公有方法声明的部分采用的两种方式,在实际应用中一般采取一种方式就可以了,如果两种方式都要采用的话,应注意顺序,防止前面写的方法被清空或覆盖。
    2009-11-11
  • js实现指定红包顺序和金额算法

    js实现指定红包顺序和金额算法

    这篇文章主要为大家详细介绍了js实现指定红包顺序和金额算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解

    JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解

    这篇文章主要介绍了JS/HTML5游戏常用算法之碰撞检测 地图格子算法,结合实例形式详细分析了javascript碰撞检测算法的相关原理、实现技巧与操作注意事项,需要的朋友可以参考下
    2018-12-12
  • js实现图片上传并正常显示

    js实现图片上传并正常显示

    这篇文章主要介绍了js实现图片上传并正常显示,我们经常遇到上传照片的情况,如何实现图片上传,本文为大家进行揭晓,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • js编写一个简单的产品放大效果代码

    js编写一个简单的产品放大效果代码

    这篇文章主要为大家分享了js编写一个简单的产品放大效果代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • js分片下载超出2G的大文件代码实例

    js分片下载超出2G的大文件代码实例

    为了实现断点续传,研究了js的文件分片,下面这篇文章主要给大家介绍了关于js分片下载超出2G的大文件的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04

最新评论