原生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 相关文章推荐
jquery tools系列 expose 学习
Sep 06 Javascript
jquery dialog键盘事件代码
Aug 01 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
Mar 10 Javascript
JS实现页面超时后自动跳转到登陆页面
Jan 19 Javascript
js生成随机数的过程解析
Nov 24 Javascript
用JS写的一个Ajax库(实例代码)
Aug 06 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
Nov 02 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
May 27 Javascript
angular中实现li或者某个元素点击变色的两种方法
Jul 27 Javascript
Bootstrap Table 搜索框和查询功能
Nov 30 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
Nov 16 Javascript
使用Cargo工具高效创建Rust项目
Aug 14 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
php验证码生成代码
2015/11/11 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
php实现session共享的实例方法
2019/09/19 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
jQuery为iframe的body添加click事件的实现代码
2011/04/07 Javascript
使用JavaScript实现Java的List功能(实例讲解)
2013/11/07 Javascript
Jqgrid表格随窗口大小改变而改变的简单实例
2013/12/28 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
Nodejs学习笔记之Global Objects全局对象
2015/01/13 NodeJs
Bootstrap布局方式详解
2016/05/27 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
2016/08/01 Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
2016/10/24 Javascript
从零学习node.js之express入门(六)
2017/02/25 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
[03:14]辉夜杯主赛事 12月25日每日之星
2015/12/26 DOTA
python操作日期和时间的方法
2014/03/11 Python
在Python的Django框架中获取单个对象数据的简单方法
2015/07/17 Python
浅谈Python 中整型对象的存储问题
2016/05/16 Python
详解python中的 is 操作符
2017/12/26 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
一款纯css3实现简单的checkbox复选框和radio单选框
2014/11/05 HTML / CSS
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
什么是.net
2015/08/03 面试题
春节超市活动方案
2014/08/14 职场文书
组工干部对照检查材料
2014/08/25 职场文书
从贫穷到富有,是知识技能和学习力的差别
2019/08/20 职场文书
解决Swagger2返回map复杂结构不能解析的问题
2021/07/02 Java/Android
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技