JavaScript实现文字与图片拖拽效果的方法

  本文实例讲述了JavaScript实现文字与图片拖拽效果的方法。分享给大家供大家参考。具体实现方法如下:

  

复制代码 代码如下:
<html>

  <head>

  <title>JavaScript实现文字与图片的拖拽效果</title>

  <style type="text/css">

  *{padding:0;margin:0;}

  .tips{position:absolute;background:#eee;}

  </style>

  </head>

  <body>

  <div class="tips" id="tips1" onmouseover="dragF.drag('tips1');">

  <img src="/images/skinslogo.gif"><br>图片可以拖动</div>

  <div class="tips" id="tips2" onmouseover="dragF.drag('tips2');"><a href="http://www.glzy8.com" target="_blank">管理资源吧</a><br />拖动链接也可以

  </div>

  </body>

  <script type="text/javascript">

  var $id=function(id){return document.getElementById(id);}

  var dragF={

  locked:false,

  lastObj:undefined,

  drag:function(obj){

  $id(obj).onmousedown=function(e){

  var e = e ? e : window.event;

  if(!window.event) {e.preventDefault();}/* 阻止标注<a href='/site/js-5791-1.html' target='_blank'><u>浏览器</u></a>下拖动a,img的默认事件 */

  dragF.locked=true;

  $id(obj).style.position="absolute";

  $id(obj).style.zIndex="100";

  if (dragF.lastObj&&dragF.lastObj!=$id(obj)) {/* 多元素拖动需要恢复上次元素状态 */

  dragF.lastObj.style.zIndex = "1";

  }

  dragF.lastObj=$id(obj);

  var tempX=$id(obj).offsetLeft;

  var tempY=$id(obj).offsetTop;

  dragF.x=e.clientX;

  dragF.y=e.clientY;

  document.onmousemove=function(e){

  var e = e ? e : window.event;

  if(dragF.locked==false) return false;

  $id(obj).style.left=tempX+e.clientX-dragF.x+"px";

  $id(obj).style.top=tempY+e.clientY-dragF.y+"px";

  if(window.event) {e.returnValue=false;}/* 阻止ie下a,img的默认事件 */

  }

  document.onmouseup=function(){

  dragF.locked=false;

  }

  }

  }

  }

  </script>

  </html>

  希望本文所述对大家的javascript程序设计有所帮助。