Home >Web Front-end >JS Tutorial >Support mouse dragging and dragging mouse pointer effects in IE, firefxo, and chrome browsers_Layout and Layers

Support mouse dragging and dragging mouse pointer effects in IE, firefxo, and chrome browsers_Layout and Layers

WBOY
WBOYOriginal
2016-05-16 16:16:272050browse

Core code:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>鼠标拖动和拖拽的鼠标指针特效</title>
<style>
#box{width:100px;height:100px;background:#966;position:absolute;left:100px;top:100px;cursor:pointer;}
</style>
</head>
<body>
<div id="box"></div>
<script>
var doc=document;
function getViewport(){
  return {width:Math.max(document.documentElement.clientWidth,document.documentElement.scrollWidth),
      height:Math.max(document.documentElement.clientHeight,document.documentElement.scrollHeight)
  };
}
function compareNum(x,minNum,maxNum){
 switch(true){
 case x<minNum:x=minNum;break;
 case x>maxNum:x=maxNum;break;
 default:x;
 }
 return x;
 }

box.style.left='100px'
box.style.top='100px'

box.onmousedown=function(e){
 var e=e||window.event;
 var maxL=getViewport().width-100,
   maxT=getViewport().height-100;
 this.startL=parseInt(this.style.left);
 this.startT=parseInt(this.style.top);
 //alert(e.clientX)
 this.startX=e.clientX;
 this.startY=e.clientY;
 //alert(maxL+':'+maxT+':'+L+':'+T)
 doc.onmousemove=function(e){
 posXY(e,0,0,maxL,maxT);
 };
 doc.onmouseup=function(){
  doc.onmousemove=null;
 doc.onmouseup=null;
 };
 return false;
}
function posXY(e,minL,minT,maxL,maxT){
  var e=e||window.event;
 var x=box.startL-(box.startX-e.clientX);
 var y=box.startT-(box.startY-e.clientY);
 box.style.left=compareNum(x,minL,maxL)+'px'
 box.style.top=compareNum(y,minT,maxT)+'px'
}
</script>
</body>
</html>


[Ctrl A select all Note: If you need to introduce external Js, you need to refresh to execute
]<script> var doc=document; function getViewport(){ return {width:Math.max(document.documentElement.clientWidth,document.documentElement.scrollWidth), height:Math.max(document.documentElement.clientHeight,document.documentElement.scrollHeight) }; } function compareNum(x,minNum,maxNum){ switch(true){ case x<minNum:x=minNum;break; case x>maxNum:x=maxNum;break; default:x; } return x; } box.style.left='100px' box.style.top='100px' box.onmousedown=function(e){ var e=e||window.event; var maxL=getViewport().width-100, maxT=getViewport().height-100; this.startL=parseInt(this.style.left); this.startT=parseInt(this.style.top); //alert(e.clientX) this.startX=e.clientX; this.startY=e.clientY; //alert(maxL+':'+maxT+':'+L+':'+T) doc.onmousemove=function(e){ posXY(e,0,0,maxL,maxT); }; doc.onmouseup=function(){ doc.onmousemove=null; doc.onmouseup=null; }; return false; } function posXY(e,minL,minT,maxL,maxT){ var e=e||window.event; var x=box.startL-(box.startX-e.clientX); var y=box.startT-(box.startY-e.clientY); box.style.left=compareNum(x,minL,maxL)+'px' box.style.top=compareNum(y,minT,maxT)+'px' } </script>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn