返回顶部
首页 > 资讯 > 精选 >怎么使用js实现拖动模态框
  • 705
分享到

怎么使用js实现拖动模态框

2023-07-02 14:07:33 705人浏览 八月长安
摘要

本文小编为大家详细介绍“怎么使用js实现拖动模态框”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用js实现拖动模态框”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。效果如下:代码思路:1.点击弹出层,会弹出

本文小编为大家详细介绍“怎么使用js实现拖动模态框”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用js实现拖动模态框”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

效果如下:

怎么使用js实现拖动模态框

代码思路:

1.点击弹出层,会弹出模态框,并且显示灰色半透明的遮挡层。

2.点击关闭按钮,可以关闭模态框,并且同时关闭灰色半透明遮挡层。

3.鼠标放到模态框最上面一行,可以按住鼠标拖拽模态框在页面中移动。

4.鼠标松开,可以停止拖动模态框移动。

在页面中拖拽的原理︰鼠标按下并且移动,之后松开鼠标        

触发事件是鼠标按下mousedown,鼠标移动mousemove鼠标松开mouseup

拖拽过程:鼠标移动过程中,获得最新的值赋值给模态框的left和top值,这样模态框可以跟着鼠标走了  

鼠标按下触发的事件源是最上面一行.就是id 为title

鼠标的坐标减去鼠标在盒子内的坐标,才是模态框真正的位置。        

鼠标按下,我们要得到鼠标在盒子的坐标。        

鼠标移动,就让模态框的坐标设置为︰鼠标坐标减去盒子坐标即可,注意移动事件写到按下事件里面。

代码步骤:

点击弹出层,模态框和遮挡层就会显示出来 display:block
1.1点击弹出层这个链接link  让mark 和login 显示出来

点击关闭按钮,模态框和遮挡层就会隐藏出来 display:none
2.1点击弹出层这个关闭按钮closeBtn  让mark 和login 隐藏起来

开始拖拽
1)当鼠标按下,就获得鼠标在盒子内的坐标
2)鼠标移动的时候,把鼠标在页面中的坐标 减去 鼠标在盒子中的坐标就是模态框的left和top值 注意移动事件写到按下事件里面。
(3)鼠标弹起,就让鼠标事件移除

具体每一步的步骤也会在代码中写出来 

html部分:

<div class="login-header">            <a href="javascript:;" id="link">                点击,弹出登录框            </a>        </div>        <div id="login" class="login">            <div id="title" class="login-title">登录会员                <span>                    <a href="javascript:void(0);" id="closeBtn">                        关闭                    </a>                </span>            </div>            <div class="login-input-content">                <div class="login-input">                    <label>用户名:</label>                    <input type="text" name="info[name]" id="username" placeholder="请输入用户名" />                </div>                <div class="login-input">                    <label>登录密码</label>                    <input type="passWord" name="info[password]" id="password" placeholder="请输入登录密码" />                </div>            </div>            <div id="loginBtn" class="login-button">                <a href="javascript:void(0)" id="login-button-submit"></a>            </div>        </div>        <!-- 遮盖层 -->        <div id="bg" class="login-bg"> </div>

CSS部分:

.login-header>a {                position: fixed;                top: 20px;                left: 40%;                font-size: 30px;             }             .login {                display: none;                width: 512px;                height: 280px;                position: fixed;                border: 1px solid #EBEBEB;                left: 50%;                top: 50%;                background-color: #fff;                box-shadow: 0 0 20px #DDD;                z-index: 999;                transfORM: translate(-50%, -50%);            }             .login-title {                width: 100%;                margin: 10px 0 0 0;                text-align: center;                line-height: 40px;                height: 40px;                position: relative;                cursor: move;            }             .login-input-content {                margin-top: 20px;            }             .login-button {                width: 50%;                margin: 30px auto 0 auto;                line-height: 40px;                font-size: 14px;                border: 1px solid #EBEBEB;                text-align: center;            }             .login-bg {                display: none;                width: 100%;                height: 100%;                position: fixed;                top: 0;                left: 0;                background: rgba(0, 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;                width: 350px;                border: 1px solid #EBEBEB;                text-indent: 5px;            }             .login-input {                overflow: hidden;                margin: 0 0 20px 40px;            }             .login-input label {                float: left;                width: 90px;                padding-right: 10px;                line-height: 35px;                height: 35px;                font-size: 14px            }             .login-title span {                position: absolute;                font-size: 12px;                right: -10px;                top: -30px;                background-color: #fff;                border: 1px solid #ebebeb;                width: 40px;                height: 40px;                border-radius: 20px;            }

javascript部分:

//1.获取元素var login = document.querySelector('.login');//遮盖层var mark = document.querySelector('.login-bg');// 显示按钮var link = document.querySelector('#link');//关闭按钮var closeBtn = document.querySelector('#closeBtn');//在title区域按下鼠标才可以拖动var title = document.querySelector('#title') // 2.点击弹出层这个链接link  让mark 和login 显示出来    link.addEventListener('click', function() {            mark.style.display = 'block'            login.style.display = 'block'        })         // 3.点击弹出层这个关闭按钮closeBtn  让mark 和login 隐藏起来        closeBtn.addEventListener('click', function() {            mark.style.display = 'none'            login.style.display = 'none'        })          // 4.开始拖拽        //(1)当鼠标按下,就获得鼠标在盒子内的坐标        title.addEventListener('mousedown', function(e) {            var x = e.pageX - login.offsetLeft;            var y = e.pageY - login.offsetTop;             // (2)鼠标移动的时候,把鼠标在页面中的坐标 减去 鼠标在盒子中的坐标就是模态框的left和top值 注意移动事件写到按下事件里面。            document.addEventListener('mousemove', move)             function move(e) {                 login.style.left = e.pageX - x + 'px'                login.style.top = e.pageY - y + 'px'             }            // (3)鼠标弹起,就让鼠标事件移除            document.addEventListener('mouseup', function(e) {                    document.removeEventListener('mousemove', move)            })        })

读到这里,这篇“怎么使用js实现拖动模态框”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么使用js实现拖动模态框

本文链接: https://lsjlt.com/news/342573.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么使用js实现拖动模态框
    本文小编为大家详细介绍“怎么使用js实现拖动模态框”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用js实现拖动模态框”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。效果如下:代码思路:1.点击弹出层,会弹出...
    99+
    2023-07-02
  • js实现拖动模态框
    模态框,我们也叫弹出框,可以在网易云,京东等之类的网页中看到。 效果如下: 代码思路: 1.点击弹出层,会弹出模态框,并且显示灰色半透明的遮挡层。 2.点击关闭按钮,可以关闭模态框...
    99+
    2024-04-02
  • JS如何实现拖动模态框
    这篇文章主要介绍了JS如何实现拖动模态框的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS如何实现拖动模态框文章都会有所收获,下面我们一起来看看吧。效果图:需求分析:点击登录后登录表单和遮罩层显示,点击关闭按钮...
    99+
    2023-07-02
  • JS实现拖动模态框案例
    本文实例为大家分享了JS实现拖动模态框的具体代码,供大家参考,具体内容如下 效果图: 需求分析: 点击登录后登录表单和遮罩层显示,点击关闭按钮隐藏。输入密码时可以明文查看或者隐藏。...
    99+
    2024-04-02
  • js实现拖动模态框效果
    本文实例为大家分享了js实现拖动模态框效果的具体代码,供大家参考,具体内容如下 1.实现效果: 点击链接,弹出模态框。点击关闭,关闭模态框。 点击标题部分,可以随意移动模态框的位置...
    99+
    2024-04-02
  • JS实现模态框拖拽动态效果
    本文实例为大家分享了JS实现模态框拖拽的具体代码,供大家参考,具体内容如下 在实现这个案例效果首先我们了解几个属性,offsetLeft.offsetTop,e.pageX,e.pa...
    99+
    2024-04-02
  • js实现模态框拖拽
    本文实例为大家分享了js实现模态框拖拽的具体代码,供大家参考,具体内容如下 效果展示和需求分析 效果展示 需求分析 点击登录后登录表单和遮罩层显示,点击关闭按钮隐藏。输入密码时可以...
    99+
    2024-04-02
  • js如何实现拖动模态框效果
    今天小编给大家分享一下js如何实现拖动模态框效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.实现效果:点击链接,弹出模...
    99+
    2023-07-02
  • JS实现简单拖动模态框案例
    本文实例为大家分享了JS实现简单拖动模态框的具体代码,供大家参考,具体内容如下 需要实现的效果: ①点击“点击,弹出登录框”后模态框和遮挡层就会显示出来 ②...
    99+
    2024-04-02
  • JS实现简单可拖动的模态框
    本文实例为大家分享了JS实现简单可拖动的模态框的具体代码,供大家参考,具体内容如下 这篇博文有 简单实现 和 带样式且稍微复杂一点 的两个版本 简单版本 效果图: 实现思路: 给可...
    99+
    2024-04-02
  • JS如何实现模态框拖拽动态效果
    本篇内容主要讲解“JS如何实现模态框拖拽动态效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS如何实现模态框拖拽动态效果”吧!在实现这个案例效果首先我们了解几个属性,offsetLeft.o...
    99+
    2023-07-02
  • JavaScript实现拖动模态框
    本文实例为大家分享了JavaScript实现拖动模态框的具体代码,供大家参考,具体内容如下 案例:模态框拖拽 弹出框,我们也称为模态框。 1.点击弹出层,会弹出模态框,并且显示灰色半...
    99+
    2024-04-02
  • js如何实现模态框拖拽
    今天小编给大家分享一下js如何实现模态框拖拽的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。效果展示和需求分析效果展示需求分析...
    99+
    2023-07-02
  • JS如何实现简单可拖动的模态框
    这篇文章主要讲解了“JS如何实现简单可拖动的模态框”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS如何实现简单可拖动的模态框”吧!简单版本效果图:实现思路:给可拖动部分添加点击事件,触发时...
    99+
    2023-07-02
  • JavaScript实现可拖动模态框
    本文实例为大家分享了JavaScript实现可拖动模态框的具体代码,供大家参考,具体内容如下 代码: HTML代码部分: <style> * { ...
    99+
    2024-04-02
  • js实现模态框的拖拽效果
    本文实例为大家分享了js实现模态框拖拽效果的具体代码,供大家参考,具体内容如下 之前学习js遇到了这样的需求:鼠标按下后,移动鼠标,模态框随鼠标移动,鼠标松开,模态框也不会随鼠标移动...
    99+
    2024-04-02
  • JavaScript实现拖动模态框的代码怎么写
    这篇文章主要介绍“JavaScript实现拖动模态框的代码怎么写”,在日常操作中,相信很多人在JavaScript实现拖动模态框的代码怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript实...
    99+
    2023-07-02
  • js如何实现模态框的拖拽效果
    今天小编给大家分享一下js如何实现模态框的拖拽效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。分析思路:点击弹出层,模态框...
    99+
    2023-07-02
  • JS实现可移动模态框
    本文实例为大家分享了JS实现可移动模态框的具体代码,供大家参考,具体内容如下 点击增加弹出模态框。 这个模态框可以移动的。 由于我写的项目是egg.js前后端分离,需要获取数据库内...
    99+
    2024-04-02
  • react实现拖拽模态框
    前言 实际开发中,模态框展现数据会经常出现.但不幸的是有时功能开发完了,UI同学突然提出需求希望模态框能拖拽.本文使用的模态框由 ant design 3.0 的 Modal 组件封...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作