css代码

         body {
margin:;
text-align: center;
}
.box {
display: none;
background-color: #fff !important;
width: 400px;
height: 300px;
position: absolute;
top: 30%;
left: 40%;
z-index:;
}
.logo {
width: 100%;
height: 60px;
}
.login-bg {
display: none;
width: 100%;
height: 100vh;
background: black;
opacity: 0.5;
position: absolute;
top:;
}
button {
float: right;
}
.login-header {
cursor: pointer;
margin: 0 auto;
line-height: 60px;
}
.login-header a {
text-decoration: none;
color: black;
font-size: 20px;
}
  <div class="login-header">
<a id="link" href="javascript:;">点击弹出模态框</a>
</div>
<div class="box">
<div class="logo">
<button class="btn">关闭</button>
</div>
</div>
<div class="login-bg mask"></div>

JS代码

  var link = document.querySelector('#link')
var box = document.querySelector('.box')
var mask = document.querySelector('.mask')
var btn = document.querySelector('.btn')
var title = document.querySelector('.logo')
// 鼠标点击弹出模态框时弹出
link.addEventListener('click', function () {
mask.style.display = 'block'
box.style.display = 'block'
})
// 鼠标再次点击时关闭
btn.addEventListener('click', function () {
mask.style.display = 'none'
box.style.display = 'none'
})
// 开始拖拽
title.addEventListener('mousedown', function (e) {
var x = e.pageX - box.offsetLeft;
var y = e.pageY - box.offsetTop;
console.log(x, y);
// 鼠标移动的时候把鼠标在页面中的坐标减去鼠标在盒子内的坐标就是模态框的left和top的值了
document.addEventListener('mousemove', move)
function move(e) {
box.style.left = e.pageX - x + 'px'
box.style.top = e.pageY - y + 'px'
}
// 鼠标弹起就让移动事件移除
document.addEventListener('mouseup', function () {
document.removeEventListener('mousemove',move)
})
})

效果图

JS 弹出框拖拽的更多相关文章

  1. bootstrap中popover.js(弹出框)使用总结+案例

    bootstrap中popover.js(弹出框)使用总结+案例 *转载请注明出处: 作者:willingtolove: http://www.cnblogs.com/willingtolove/p/ ...

  2. 【转】js弹出框、对话框、提示框、弹窗总结

    js弹出框.对话框.提示框.弹窗总结 一.js的三种最常见的对话框 //====================== JS最常用三种弹出对话框 ======================== //弹 ...

  3. js js弹出框、对话框、提示框、弹窗总结

    js弹出框.对话框.提示框.弹窗总结 一.JS的三种最常见的对话框 //====================== JS最常用三种弹出对话框 ======================== //弹 ...

  4. 5月12日上课笔记-js 弹出框、函数、程序调试、基本事件、浏览器对象模型

    一.弹出框 a.提示框 alert(); b.输入框 prompt(); c.确认框 confirm(); var flag= confirm("确认删除吗?"); 二.js程序调 ...

  5. 如何妥善处理WebBrowser对Javascript的错误问题,阻止JS弹出框,提高用户体验

    由于项目需求,最近转战客户端,开始搞浏览器开发.众所周知,现在在微软平台上开发浏览器,最常用的方法就是扩展Webbrowser,但是首先要清楚的是,WebBrowser控件仅仅是对WebBrowser ...

  6. JS弹出框插件zDialog再次封装

    zDialog插件网址:http://www.jq22.com/jquery-info2426 再次封装zDialog的代码: (function ($) { $.extend({ iDialog: ...

  7. 转:WebDriver(Selenium2) 处理可能存在的JS弹出框

    在自动化测试过程中,有些情况下我们会遇到一些潜在的Javascript弹出框.(即某些条件下才会出现,不是固定出现),然后如果当这种弹出框出现,我们没有加以处理,WebDriver将无法进行下一步的操 ...

  8. WebDriver(Selenium2) 处理可能存在的JS弹出框

    http://uniquepig.iteye.com/blog/1703103 在自动化测试过程中,有些情况下我们会遇到一些潜在的Javascript弹出框.(即某些条件下才会出现,不是固定出现),然 ...

  9. java方法里面生成js弹出框

    核心代码:方法参数要有response response.setContextType("text/html;charset=UTF-8"); PrintWrite out = r ...

随机推荐

  1. java 面向对象(三十五):泛型在继承上的体现

    泛型在继承上的体现: /* 1. 泛型在继承方面的体现 虽然类A是类B的父类,但是G<A> 和G<B>二者不具备子父类关系,二者是并列关系. 补充:类A是类B的父类,A< ...

  2. python 迭代器(三):迭代器基础(三)典型的迭代器

    标准迭代器 示例 14-4 sentence_iter.py:使用迭代器模式实现 Sentence 类 import re import reprlib RE_WORD = re.compile('\ ...

  3. cnn卷积理解

    首先输入图像是28*28处理好的图. 第一层卷积:用5*5的卷积核进行卷积,输入为1通道,输出为32通道.即第一层的输入为:28*28图,第一层有32个不同的滤波器,对同一张图进行卷积,然后输出为32 ...

  4. web前端知识点(webpack篇)

    webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency gr ...

  5. Oracle Database Tools

    The following are some products, tools, and utilities you can use to achieve your goals as a databas ...

  6. 一个牛逼的FTP——Wring Ftp

    背景:总公司内网有一部分文档需要共享,想要一个能便捷管理的文档系统 需求:分帐号授权,有的帐号只能看,有的帐号只能新增,有的帐号可以增删改查,另外可以便捷的对帐号进行管理 方法: 一.Wing Ftp ...

  7. ASP.Net Core 3.1 With Autofac ConfigureServices returning an System.IServiceProvider isn't supported.

    ASP.Net Core 3.1 With Autofac ConfigureServices returning an System.IServiceProvider isn't supported ...

  8. 【翻译】.NET 5 Preview7发布

    今天,发布了.NET 5.0 Preview7.这是倒数第二个预览版本(在转移到RC之前).此时,大多数功能应该已经非常接近完成了.Single file和ARM64 intrinsics是两个花费了 ...

  9. 题解 UVA501 【Black Box】

    思路与中位数一题,解决方案比较像,使用对顶堆来解决. 具体实现为,使用两个堆,大根堆维护较小的值,小根堆维护较大的值,即小根堆的堆顶是较大的数中最小的,大根堆的堆顶是较小的数中最大的. 将大于大根堆堆 ...

  10. [转载]Android SDK 离线文档 (api 20)(升级至api 23)

    原文地址:SDK 离线文档 (api 20)(升级至api 23)">Android SDK 离线文档 (api 20)(升级至api 23)作者:leechenhwa Android ...