全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

js实现登录框鼠标拖拽效果

效果图:

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>登录框鼠标拖拽效果</title>
 <style type="text/css">
 body {
  background: url("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1488778794834&di=e97c96dfe7860297d1968c30adc862a2&imgtype=0&src=http%3A%2F%2Fpic1.5442.com%3A82%2F2015%2F0409%2F01%2F15.jpg%2521960.jpg") no-repeat top center #ffffff;
  background-size: 100%;
  padding: 0;
  margin: 0;
  font-size: 12px;
  font-family: "微软雅黑", sans-serif;
 }
 .ui-dialog {
  width: 380px;
  position: absolute;
  z-index: 9000;
  top: 100px;
  left: 100px;
  border: 1px solid #d5d5d5;
  background-color: #ffffff;
  /*display: none;*/
 }
 .ui-dialog-title {
  height: 48px;
  line-height: 48px;
  padding-left: 20px;
  color: #535353;
  font-size: 16px;
  background-color: #f5f5f5;
  border-bottom: 1px solid #efefef;
  cursor: move;
 }
 .ui-dialog-title-closebutton {
  width: 16px;
  height: 16px;
  display: inline-block;
  position: absolute;
  right: 20px;
  color: #000;
  text-decoration: unset;
 }
 .ui-dialog-title-closebutton:hover {
  color: #4ca8ff;
 }
 .ui-dialog-content {
  padding: 15px 20px;
 }
 .ui-dialog-pt15 {
  padding-top: 15px;
 }
 .ui-dialog-l40 {
  height: 40px;
  line-height: 40px;
  text-align: right;
 }
 .ui-dialog-input {
  width: 100%;
  height: 40px;
  margin: 0;
  padding: 0;
  border:1px solid #d5d5d5;
  font-size: 16px;
  color: #c1c1c1;
  text-indent: 25px;
  outline: none;
 }
 .ui-dialog-input-username {
  background: url("images/input_username.png") no-repeat 2px;
 }
 .ui-dialog-input-password {
  background: url("images/input_password.png") no-repeat 2px;
 }
 .ui-dialog-submit {
  width: 100%;
  height: 50px;
  background: #3b7ae3;
  border: none;
  font-size: 16px;
  color: #ffffff;
  outline: none;
  text-decoration: none;
  display: block;
  text-align: center;
  line-height: 50px;
 }
 .ui-dialog-submit:hover {
  background: #3f81b0;
 }
 .ui-mask {
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0.4;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 8000;
  display: none;
 }
 .link {
  text-align: right;
  line-height: 20px;
  padding-right: 40px;
 }
 </style>
</head>
<body>
 <div class="ui-dialog" id="dialog">
 <div class="ui-dialog-title" id="dialogTitle">
  登录
  <!-- 右上角的关闭按钮 -->
  <a href="javascript:hideDialog();" rel="external nofollow" class="ui-dialog-title-closebutton">X</a>
 </div>
 <div class="ui-dialog-content">
  <div class="ui-dialog-l40 ui-dialog-pt15">
  <input class="ui-dialog-input ui-dialog-input-username" type="input" placeholder="手机/邮箱/用户名" />
  </div>
  <div class="ui-dialog-l40 ui-dialog-pt15">
  <input class="ui-dialog-input ui-dialog-input-password" type="input" placeholder="密码" />
  </div>
  <div class="ui-dialog-l40">
  <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >忘记密码</a>
  </div>
  <div>
  <a class="ui-dialog-submit" href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >登录</a>
  </div>
  <div class="ui-dialog-l40">
  <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >立即注册</a>
  </div>
 </div>
 </div>
 <div class="ui-mask" id="mask"></div>
 <div class="link">
 <a href="javascript:showDialog();" rel="external nofollow" style=" text-decoration: unset;color: #4ca8ff">登录</a>
 </div>
 <script type="text/javascript">
 // 获取元素对象
 function g(id) {
  return document.getElementById(id);
 }
 // 自动居中函数 -- 登录浮层
 // el {Element}
 function autoCenter(el) {
  // 获得可视区域的宽和高
  var bodyW = document.documentElement.clientWidth;
  var bodyH = document.documentElement.clientHeight;
  // 获得元素 el 的宽和高
  var elW = el.offsetWidth;
  var elH = el.offsetHeight;
  // 设置元素的 style 样式
  el.style.left = (bodyW - elW) / 2 + 'px';
  el.style.top = (bodyH - elH) / 2 + 'px';
 }
 // 扩展元素到整个可视区域 -- 遮罩层
 // el {Element}
 function fillToBody(el) {
  // 将元素的宽和高设置的和可视区域一样
  el.style.width = document.documentElement.clientWidth + 'px';
  el.style.height = document.documentElement.clientHeight + 'px';
 }
 // 定义全局变量
 var mouseOffsetX = 0;
 var mouseOffsetY = 0;
 var isDragging = false;
 // 鼠标事件1 -- 在标题栏上按下
 // 计算鼠标相对拖拽元素的的左上角的坐标, 并且标记元素为可拖动
 g('dialogTitle').addEventListener('mousedown', function(e) {
  var e = e || window.event;
  // 用鼠标按下时的坐标减去 dialog 的左上角坐标
  mouseOffsetX = e.pageX - g('dialog').offsetLeft;
  mouseOffsetY = e.pageY - g('dialog').offsetTop;
  isDragging = true;
 });
 // 鼠标事件2 -- 鼠标移动
 document.onmousemove = function(e) {
  var e = e || window.event;
  // 鼠标当前位置
  var mouseX = e.pageX;
  var mouseY = e.pageY;
  // 鼠标从单击时至当前时刻移动的距离
  var moveX = 0;
  var moveY = 0;
  if (isDragging === true) {
  moveX = mouseX - mouseOffsetX;
  moveY = mouseY - mouseOffsetY;
  // 范围限定
  // moveX > 0 且 moveX < (页面最大宽度 - 浮层宽度)
  // moveY > 0 且 moveY < (页面最大宽度 - 浮层高度)
  var pageWidth = document.documentElement.clientWidth;
  var pageHeight = document.documentElement.clientHeight;
  // 登录浮层的宽、高
  var dialogWidth = g('dialog').offsetWidth;
  var dialogHeight = g('dialog').offsetHeight;
  var maxX = pageWidth - dialogWidth;
  var maxY = pageHeight - dialogHeight;
  moveX = Math.min(maxX, Math.max(0, moveX));
  moveY = Math.min(maxY, Math.max(0, moveY));
  g('dialog').style.left = moveX + 'px';
  g('dialog').style.top = moveY + 'px';
  }
 };
 // 鼠标事件3 -- 鼠标松开
 document.onmouseup = function() {
  isDragging = false;
 };
 // 展现登录浮层
 function showDialog() {
  g('dialog').style.display = 'block';
  g('mask').style.display = 'block';
  autoCenter(g('dialog'));
  fillToBody(g('mask'));
 }
 // 隐藏登录浮层
 function hideDialog() {
  g('dialog').style.display = 'none';
  g('mask').style.display = 'none';
 }
 window.onresize = function() {
  autoCenter(g('dialog'));
  fillToBody(g('mask'));
 };
 showDialog();
 autoCenter(g('dialog'));
 </script>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# js实现拖拽效果  # 鼠标拖拽效果  # js拖拽  # 原生JS实现可拖拽登录框  # Javascript实现登录框拖拽效果  # js实现百度登录框鼠标拖拽效果  # 百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8  # Firefox  # Chrome  # javascript 网页编辑框及拖拽图片的问题  # js实现弹出框的拖拽效果实例代码详解  # 使用纯JS实现checkbox的框选效果(鼠标拖拽多选)  # JavaScript实现模态框拖拽效果  # HTML+CSS+JavaScript实现可拖拽模态框  # javascript实现登录框拖拽  # 鼠标  # 按下  # 拖拽  # 微软  # 忘记密码  # 拖动  # 时至  # 单击  # 栏上  # 全局变量  # 用鼠标  # dialog  # family  # font  # serif  # sans  # ui  # px  # jpg  # repeat 


相关文章: 中山网站制作网页,中山新生登记系统登记流程?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  制作网站外包平台,自动化接单网站有哪些?  招贴海报怎么做,什么是海报招贴?  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  济南专业网站制作公司,济南信息工程学校怎么样?  建站之星如何实现五合一智能建站与营销推广?  如何通过VPS搭建网站快速盈利?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  高端建站三要素:定制模板、企业官网与响应式设计优化  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  北京网站制作公司哪家好一点,北京租房网站有哪些?  制作公司内部网站有哪些,内网如何建网站?  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  如何在万网自助建站中设置域名及备案?  定制建站策划方案_专业建站与网站建设方案一站式指南  如何用PHP快速搭建高效网站?分步指南  公众号网站制作网页,微信公众号怎么制作?  制作表格网站有哪些,线上表格怎么弄?  盐城做公司网站,江苏电子版退休证办理流程?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  如何获取开源自助建站系统免费下载链接?  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  如何实现建站之星域名转发设置?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  深圳网站制作培训,深圳哪些招聘网站比较好?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  ui设计制作网站有哪些,手机UI设计网址吗?  ,怎么在广州志愿者网站注册?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  建站之星后台密码如何安全设置与找回?  如何选择高效稳定的ISP建站解决方案?  XML的“混合内容”是什么 怎么用DTD或XSD定义  平台云上自助建站如何快速打造专业网站?  建站主机数据库如何配置才能提升网站性能?  Bpmn 2.0的XML文件怎么画流程图  焦点电影公司作品,电影焦点结局是什么?  小型网站建站如何选择虚拟主机?  网站设计制作企业有哪些,抖音官网主页怎么设置?  高防服务器租用指南:配置选择与快速部署攻略  个人摄影网站制作流程,摄影爱好者都去什么网站?  行程制作网站有哪些,第三方机票电子行程单怎么开?  如何快速生成橙子建站落地页链接?  非常酷的网站设计制作软件,酷培ai教育官方网站?  建站之星如何开启自定义404页面避免用户流失? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。