原生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拖放插件集合
Apr 09 Javascript
javascript简单实现类似QQ头像弹出效果的方法
Aug 03 Javascript
详解jQuery选择器
Dec 21 Javascript
d3.js中冷门却实用的内置函数总结
Feb 04 Javascript
Vue.js实现一个todo-list的上移下移删除功能
Jun 26 Javascript
浅谈react前后端同构渲染
Sep 20 Javascript
详解React 在服务端渲染的实现
Nov 16 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
May 26 jQuery
vue中导出Excel表格的实现代码
Oct 18 Javascript
Vue CLI3基础学习之pages构建多页应用
Jun 02 Javascript
js实现固定区域内的不重叠随机圆
Oct 24 Javascript
聊聊Vue中provide/inject的应用详解
Nov 10 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排序算法的复习和总结
2012/02/15 PHP
ajax在joomla中的原生态应用代码
2012/07/19 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
详解PHP 7.4 中数组延展操作符语法知识点
2019/07/19 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
Open and Print a Word Document
2007/06/15 Javascript
javascript 树控件 比较好用
2009/06/11 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
Javascript操作URL函数修改版
2013/11/07 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
js利用clipboardData实现截屏粘贴功能
2016/10/12 Javascript
vue中用H5实现文件上传的方法实例代码
2017/05/27 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
2017/06/16 jQuery
angularJS实现不同视图同步刷新详解
2018/10/09 Javascript
vue自定义switch开关组件,实现样式可自行更改
2019/11/01 Javascript
[01:03:03]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
用Python绘制漫步图实例讲解
2020/02/26 Python
西班牙在线宠物食品和配件商店:bitiba
2019/10/11 全球购物
"火柴棍式"程序员面试题
2014/03/16 面试题
北京捷通华声语音技术有限公司Java软件工程师笔试题
2012/04/10 面试题
业务副厂长岗位职责
2014/01/03 职场文书
小学教研工作制度
2014/01/15 职场文书
信息技术专业大学生职业生涯规划书
2014/01/24 职场文书
欢迎标语大全
2014/06/21 职场文书
化工见习报告范文
2014/10/31 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript