原生js实现可拖拽效果


Posted in Javascript onFebruary 28, 2017

效果图:

原生js实现可拖拽效果

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>可拖拽特效</title>
 <style type="text/css">
 *{margin: 0;padding: 0;}
 .header{width:100%;height:30px;background:#036663;line-height:30px;color:#fff;text-indent:30px;}
 #demo{width:400px;height:300px;border:solid 5px #eee;box-shadow:0 0 5px #666;position:absolute;top:40%;left:40%;}
 #innerht{height:25px;background:#036663;border-bottom:solid 1px #369;color:#fff;text-indent:10px;cursor:move;}
 #close{float:right;cursor:pointer;}
 </style>
</head>
<body>
<div class="header">注册信息</div>
<div id="demo">
 <div id="innerht">注册信息(可拖拽)<span id="close">【关闭】</span></div>
 <div class="write"></div>
</div>
</body>
<script type="text/javascript">
 (function(window){
 function $(id){
  return document.getElementById(id);
 };
 // 获取对象
 var innerht = $("innerht"),demo = $("demo"),close = $("close");
 // 给innerht绑定鼠标事件
 innerht.onmousedown = function(event){
  // 解决event兼容问题
  var event = event || window.event; 
  // 获取鼠标在页面上坐标
  var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
  var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;
  // 获取鼠标在innerht内部的坐标
  var innerX = pageX - demo.offsetLeft;
  var innerY = pageY - demo.offsetTop;
  // 给document绑定鼠标移动事件,防止鼠标快速滑动时滑出innerht
  document.onmousemove = function(event){
  var event = event || window.event;
  // 获取鼠标移动时的坐标
  var moveX = event.pageX || event.clientX + document.documentElement.scrollLeft;
  var moveY = event.pageY || event.clientY + document.documentElement.scrollTop;
  // 鼠标移动时demo的位置坐标
  var demoX = moveX - innerX ;
  var demoY = moveY - innerY ;
  // 鼠标移动时demo的位置坐标
  demo.style.left = demoX + "px";
  demo.style.top = demoY + "px";
  //清除选中文字
       window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
  }
 };
 // 鼠标抬起清除拖拽效果
 document.onmouseup = function(){
  document.onmousemove = null ;
 };
   // 点击关闭按钮关闭跟随框
   close.onclick = function(){
   this.parentNode.parentNode.style.display = "none";
   };
 })(window)
</script>
</html>

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

Javascript 相关文章推荐
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
Apr 20 Javascript
JS+CSS实现一个气泡提示框
Aug 18 Javascript
JavaScript作用域链示例分享
May 27 Javascript
Bootstrap每天必学之标签与徽章
Nov 27 Javascript
前端程序员必须知道的高性能Javascript知识
Aug 24 Javascript
微信小程序多列选择器range-key使用详解
Mar 30 Javascript
基于vue2实现上拉加载功能
Nov 28 Javascript
JavaScript门道之标准库
May 26 Javascript
详解Ant Design of React的安装和使用方法
Dec 27 Javascript
React组件对子组件children进行加强的方法
Jun 23 Javascript
layui 对table中的数据进行转义的实例
Sep 12 Javascript
js判断非127开头的IP地址的实例代码
Jan 05 Javascript
javascript 面向对象function详解及实例代码
Feb 28 #Javascript
正则验证小数点后面只能有两位数的方法
Feb 28 #Javascript
原生js实现鼠标跟随效果
Feb 28 #Javascript
canvas实现简易的圆环进度条效果
Feb 28 #Javascript
JS实现的tab切换选项卡效果示例
Feb 28 #Javascript
jQuery Pagination分页插件使用方法详解
Feb 28 #Javascript
完美解决input[type=number]无法显示非数字字符的问题
Feb 28 #Javascript
You might like
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
php 截取字符串并以零补齐str_pad() 函数
2011/05/07 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
2012/10/06 PHP
PHP中的数组处理函数实例总结
2016/01/09 PHP
php实现通过soap调用.Net的WebService asmx文件
2017/02/27 PHP
PHP面向对象之事务脚本模式(详解)
2017/06/07 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
2019/04/15 PHP
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
jquery $(this).attr $(this).val方法使用介绍
2013/10/08 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
浅谈Jquery为元素绑定事件
2015/04/27 Javascript
jQuery实现定位滚动条位置
2016/08/05 Javascript
JS实现中国公民身份证号码有效性验证
2017/02/20 Javascript
在javaScript中检测数据类型的几种方式小结
2017/03/04 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
JavaScript内置对象之Array的使用小结
2020/05/12 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
用Python从零实现贝叶斯分类器的机器学习的教程
2015/03/31 Python
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
python绘制分布折线图的示例
2020/09/24 Python
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
RetroStage德国:复古服装
2019/02/03 全球购物
时尚圣经:The Fashion Bible
2019/03/03 全球购物
校园报刊亭创业计划书
2014/01/02 职场文书
酒店开业策划方案
2014/06/02 职场文书
党员教师群众路线思想汇报范文
2014/10/28 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
会议通知格式范文
2015/04/15 职场文书
2019销售早会主持词
2019/06/27 职场文书
python使用pywinauto驱动微信客户端实现公众号爬虫
2021/05/19 Python
如何使用分区处理MySQL的亿级数据优化
2021/06/18 MySQL
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
2021/08/07 HTML / CSS