js拖动原理

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>js拖动div修正版</title>     
<script type="text/javascript"> 
var _move = false; 
var _x,_y; 
window.onload=function(event){ 
   document.getElementById('layer').onmousedown=function(event){ 
   event = event ? event : window.event; 
//判断浏览器类型(针对ie)
   var which = navigator.userAgent.indexOf('MSIE') > 1 ? (event.button == 1 ? 1 : 0) : (event.which == 1 ? 1 : 0) ; 
   if(which) { 
     _move = true; 
     _x = event.clientX - parseInt(document.getElementById('layer').style.left);   
    _y = event.clientY - parseInt(document.getElementById('layer').style.top);  
    }  
  } 
}   

  

document.onmousemove=function(event){ 
  event = event ? event : window.event; 
     if(_move) { 
         var x = event.clientX - _x; 
         var y = event.clientY - _y; 
         document.getElementById('layer').style.left = x+'px'; 
         document.getElementById('layer').style.top = y+'px'; 
     } 
}    

document.onmouseup=function(){ _move = false; } 
</script>    
</head>     
<body> 
<div id="layer" style="position:absolute; width:200px; height:200px; background-color:#3333FF; left:425px; top:134px"></div> 
</body> 
</html>

时间: 2024-10-24 18:21:03

js拖动原理的相关文章

JS拖动技术 关于setCapture使用_javascript技巧

JS拖动技术--- 关于setCapture (转自 剑胆琴心-.Net学习笔记) 复制代码 代码如下: <script type="text/javascript"> <!-- window.onload=function(){ objDiv = document.getElementById('drag'); drag(objDiv); }; function drag(dv){ dv.onmousedown=function(e){ var d=document

js 拖动效果

在很多时候我们会要用到js 拖动效果哦,下面我们就来一款简单的js 拖动实例代码哦. function getstyle(o,key){return o.currentstyle? o.currentstyle[key] : document.defaultview.getcomputedstyle(o,null)[key]}//'currentstyle' only for ie5.0+ var drag = function(bar, target){ var params = { star

自己封装的一个原生JS拖动方法(推荐)_javascript技巧

代码: function drag(t,p){ var point = p || null, target = t || null, resultX = 0, resultY = 0; (!point)? point = target : ''; //如果没有拖动点,则拖动点默认为整个别拖动元素 function getPos(t){ var offsetLeft = 0, offsetTop = 0, offsetParent = t; while(offsetParent){ offsetL

JS拖动鼠标画出方框实现鼠标选区的方法_javascript技巧

本文实例讲述了JS拖动鼠标画出方框实现鼠标选区的方法.分享给大家供大家参考.具体如下: 相当实用的一个JS技巧,拖动鼠标可画出一个方框,可作为一个选区的功能,可以用来画流程图,设计草图什么的,也可以作为上传头像时裁切选择图片,在头像裁切中使用广泛,鼠标在图片上拖动拉出一个方框,这个方框就代表着选区的功能,目前网页上已流行的一种操作.主要是依赖于JavaScript代码来实现. 运行效果如下图所示: 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHT

JS拖动层的实现原理

解决思路      这个效果并不算常见,通常用于游戏或个人站点中.因为拖曳是靠鼠标来操作的,所以对鼠标的位置的捕获是问题的重点,然后才是根据鼠标的位置设置层的位置. 具体步骤: 1.在对象(层)上按下鼠标时,先捕获到需要拖曳的对象,然后获取或设置该对象的相关属性.obj=event.srcElement obj.setCapture() z=obj.style.zIndex obj.style.zIndex=100 x=event.offsetX y=event.offsetY down=tru

When.js的原理及快速实现

这篇文章可以看作是屈屈同学关于when.js的文章<异步编程:When.js快速上手>的续篇. 屈屈的文章中详细介绍了when.js,在这里关于when.js的使用我就不多复述了,大家可以自己去研究它的API. 在这里,我主要想讨论的是如何实现一个when.js类似的promise/A框架.为了更清晰了解实现原理,我略过when.js中一些比较强大的功能,只实现其中最核心的功能,包括基本的then(),otherwise()以及比较好用的all()和any(). 下面看一下Promise的基本

js拖动div 当鼠标移动时整个div也相应的移动_javascript技巧

HTML代码如下,其中,要拖动的div为最外层的div 复制代码 代码如下: <div id="dialog_createUserGroup" class="dialog_main" style=""> <div id="McreateUserGroup"> <div class="title"> <span class="poptitle"&g

JS短路原理的应用示例

 正如标题所言,js中||和&&的特性帮我们精简了代码的同时,也带来了代码可读性的降低.这就需要我们自己来权衡了,下面有个不错的示例 在js逻辑运算中,0."".null.false.undefined.NaN都会判为false,其他都为true.    ||先计算第一个运算数,如果可以被转换成true,则返回左边这个表达式的值,否则计算第二个运算数.即使||运算符的运算数不是布尔值,任然可以将它看作布尔OR运算,因为无论它返回的值是什么类型,都可以被转换为布尔值. 

JS短路原理的应用示例 精简代码的途径_javascript技巧

在js逻辑运算中,0."".null.false.undefined.NaN都会判为false,其他都为true. ||先计算第一个运算数,如果可以被转换成true,则返回左边这个表达式的值,否则计算第二个运算数.即使||运算符的运算数不是布尔值,任然可以将它看作布尔OR运算,因为无论它返回的值是什么类型,都可以被转换为布尔值. 利用它对非布尔型的值会将其返回的特性:对非布尔型的运算数使用||,用于选取一组备选值中的第一个定义了的并且非空的值(第一个为非false的值) 例: var