原生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 相关文章推荐
JS OOP包机制,类创建的方法定义
Nov 02 Javascript
jQuery焦点图切换特效插件封装实例
Aug 18 Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
Nov 07 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
Jun 09 Javascript
javascript实现简单的二级联动
Mar 19 Javascript
jquery实现全选功能效果的实现代码
May 05 Javascript
JavaScript简单获取系统当前时间完整示例
Aug 02 Javascript
jQuery zTree树插件简单使用教程
Jan 10 Javascript
原生js实现下拉框功能(支持键盘事件)
Jan 13 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
Aug 25 Javascript
js实现多图和单图上传显示
Dec 18 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
Sep 21 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
默默简单的写了一个模板引擎
2007/01/02 PHP
php下MYSQL limit的优化
2008/01/10 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
2014/06/20 PHP
php生成带logo二维码方法小结
2016/04/08 PHP
php 类中的常量、静态属性、非静态属性的区别
2017/04/09 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
农历与西历对照
2006/09/06 Javascript
js判断浏览器的比较全的代码
2007/02/13 Javascript
javascript 原型模式实现OOP的再研究
2009/04/09 Javascript
js判断生效时间不得大于失效时间的思路及代码
2013/04/23 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
jQuery查询数据返回object和字符串影响原因是什么
2013/08/09 Javascript
jQuery+AJAX实现网页无刷新上传
2015/02/22 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
Javascript 高性能之递归,迭代,查表法详解及实例
2017/01/08 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
Python TKinter如何自动关闭主窗口
2020/02/26 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
如何通过python实现IOU计算代码实例
2020/11/02 Python
python飞机大战游戏实例讲解
2020/12/04 Python
【HTML5】Canvas绘制简单图片教程
2016/05/13 HTML / CSS
自荐信结尾
2013/10/27 职场文书
英文求职信写作小建议
2014/02/16 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
Mac环境Nginx配置和访问本地静态资源的实现
2021/03/31 Servers
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
Javascript 解构赋值详情
2021/11/17 Javascript