jsp弹出自定义对话框(js弹出选择对话框)

分析1.点击弹出框,状态框和遮挡层(背景变灰)就会显示出来display:block;2.点击关闭按钮,模态框和遮挡层就会隐藏起来display:none;3.在页面中拖拽的原理:鼠标按下并且移动,之后松开鼠标4.触发事件是鼠标按下mou

分析

1.点击弹出框,状态框和遮挡层(背景变灰)就会显示出来 display:block;

2.点击关闭按钮,模态框和遮挡层就会隐藏起来 display:none;

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

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

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

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

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

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

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

10.鼠标松开,就是停止拖拽,就是可以让鼠标移动事件解除

代码

<!DOCTYPE html>
<html lang=\"en\">

<head>
<meta charset=\"UTF-8\">
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">
<meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">
<title>Document</title>
<style>
.login-header {
width: 100%;
text-align: center;
height: 30px;
font-size: 24px;
line-height: 30px;
}

* {
padding: 0;
margin: 0;
}

.login {
display: none;
width: 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 {
width: 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 {
width: 50%;
margin: 30px auto 0px auto;
line-height: 40px;
font-size: 14px;
border: #ebebeb 1px solid;
text-align: center;
}

.login-bg {
display: none;
width: 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;
width: 350px;
border: #ebebeb 1px solid;
text-indent: 5px;
}

.login-input {
overflow: hidden;
margin: 0px 0px 20px 0px;
}

.login-input label {
float: left;
width: 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;
width: 40px;
height: 40px;
border-radius: 20px;
}
</style>

</head>

<body>
<div class=\"login-header\"><a id=\"link\" href=\"javascript:;\">点击,弹出登录框</a></div>
<div id=\"login\" class=\"login\">
<div id=\"title\" class=\"login-title\">登录会员
<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>
<!-- 遮盖层 -->
<div id=\"bg\" class=\"login-bg\"></div>

<script>
var link = document.querySelector(\'#link\'); //获取我们鼠标点击的对象
var login = document.querySelector(\'.login\'); //获得弹出框元素
var mask = document.querySelector(\'#bg\');
var closeBtn = document.querySelector(\'#closeBtn\');
link.addEventListener(\'click\', function() {
login.style.display = \'block\';
mask.style.display = \'block\';

})
closeBtn.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;
console.log(y);

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>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/32330.html

(0)
nan
上一篇 2021-10-02
下一篇 2021-10-02

相关推荐

  • 一级建造师专业对照表(建造师有哪些专业)

    12021年一级建造师报名即将开始,很多伙伴都不知道自己的专业是否是相关专业,今日优路教育准备了,一建相关专业对照表,希望可以帮助大家。一建专业对照表分类98年-现在专业名称93-98年专业名称93年前专业名称本专业(工程、工程经济)土木工程…

    2022-01-17
    0
  • 苹果手机怎么清理缓存(一键清理垃圾自动清理)

    我们都知道,手机在使用时间过久时会导致内存空间严重不足,有时还会伴随着卡顿现象!这到底是什么原因呢?那是因为长时间的垃圾存留和APP的缓存占用了手机大量的内存,接下来就教大家如何有效地清理手机垃圾。一、管家清理每一个手机都会有自带的管家,首先我们打开

    2021-10-19 用户投稿
    0
  • p值是什么意思(统计学p值通俗解释)

    p值是什么意思?统计学p值通俗解释,久久派带你了解相关信息。当我们说到p-value时,我们在说什么?“这个变量的p-value小于0.05,所以这个变量很重要”..你真的知道自己在说什么么???这个p-value到底是个什么鬼?为什么小于0.05就很重要?很重要是什么意思?????终于这次,我们通俗易懂地来讲讲到底什么是p-value(p值)。在讲p-value

    2021-09-14 用户投稿
    0
  • 可爱的动物名字(可爱的动物有哪些)

    熊猫:一提起肥嘟嘟的黑白熊猫,就能想起它们津津有味啃竹子的萌样,这是生活在中国四川的大熊猫的可爱特征。根据世界自然基金会的统计,现在野生大熊猫只剩1600只了。大熊猫的历史可谓源远流长。迄今所发现的最古老大熊猫成员——始熊猫的化石出土于中国云南禄丰和…

    2022-01-17 随笔
    0
  • 康悦c百万医疗保险怎么样(康悦c医疗保险保障范围)

    康悦c百万医疗保险怎么样?康悦c医疗保险保障范围,爱惜日带你了解相关信息。5月1日之后,百万医疗险被集体整改。那最新一届的产品究竟怎么样?哪些有坑,哪些值得买?我们团队搜集了大家问得最多的22款百万医疗,花了整整半个月,生扒了几十万字的条款,才得出结果。事先声明!全程没有任何广告,整个测评有5轮,每一轮我都会滴水不漏地给大家把关。第一轮先看基本保障主要有住院医疗、特殊门诊、门诊

    2021-08-22 用户投稿
    0
  • 日本多火山地震的原因(世界上火山最多的国家)

    日本多火山地震的原因?世界上火山最多的国家,爱惜日带你了解相关信息。东京奥运会正在“准备”,倒计时之中,日本面临的挑战不少,结果“地震又来了”,不少人就将两个联系在一起了,问还能不能参加奥运比赛,要不要放弃比赛等等,当然首先我们要说明下,地震与开奥运是没有关系的,这个要分开。地震的发生属于正常现象,并且在全球范围之中,每天都有大小不一样的地震发生,而日本又是全球主要的地震国家之一,所

    2021-08-14 用户投稿
    0

发表回复

登录后才能评论