登录|注册|帮助中心|联系我们

导航
首页 综合百科 生活常识 数码科技 明星名人 传统文化 互联网 健康 影视 美食 教育 旅游 汽车 职场 时尚 运动 游戏 家电 地理 房产 金融 节日 服饰 乐器 歌曲 动物 植物
当前位置:首页 > 互联网

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

发布时间:2023年1月6日责任编辑:张小云标签:jspjs
分析

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 ><a ?href="javascript:;">点击,弹出登录框</a></div> ???<div ?> ???????<div ?>登录会员 ???????????<span><a ?href="javascript:void(0);" >关闭</a></span> ???????</div> ???????<div > ???????????<div > ???????????????<label>用户名:</label> ???????????????<input type="text" placeholder="请输入用户名" name="info[username]" ?> ???????????</div> ???????????<div > ???????????????<label>登录密码:</label> ???????????????<input type="password" placeholder="请输入登录密码" name="info[password]" ?> ???????????</div> ???????</div> ???????<div ?><a href="javascript:void(0);" >登录会员</a></div> ???</div> ???<!-- 遮盖层 --> ???<div ?></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>

其它知识推荐

溜溜百科知识网——分享日常生活学习工作各类知识。 垃圾信息处理邮箱 tousu589@163.com
icp备案号 闽ICP备14012035号-2 互联网安全管理备案 不良信息举报平台 Copyright 2023 www.6za.net All Rights Reserved