Heim >Web-Frontend >js-Tutorial >Unterstützt das Ziehen mit der Maus und das Ziehen von Mauszeigereffekten in IE-, Firefox- und Chrome-Browsern_Layout und Ebenen

Unterstützt das Ziehen mit der Maus und das Ziehen von Mauszeigereffekten in IE-, Firefox- und Chrome-Browsern_Layout und Ebenen

WBOY
WBOYOriginal
2016-05-16 16:16:272048Durchsuche

Kerncode:

<!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>


[Strg A alles auswählen Hinweis: Wenn Sie externe Js einführen müssen, müssen Sie zum Ausführen eine Aktualisierung durchführen
]<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>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn