js 随意拖动的图片

<HTML>
<HEAD>
<META http-equiv='Content-Type' content='text/html; charset=gb2312'>
<TITLE>这是一个可以用鼠标随意拖动图标的小程序</TITLE>
</HEAD>
<BODY onLoad="init()">

<style type="text/css">

 #plane1 {position:absolute; left:290; top:170; width:121; z-index:0}

 #plane2 {position:absolute; left:400; top:250; width:118; z-index:0}

</style>
          <script language="JavaScript">

//Modified by the CoffeeCup HTML Editor++

// Global variables for platform branching

var isNav, isIE

if (parseInt(navigator.appVersion) >= 4) {

 if (navigator.appName == "Netscape") {

  isNav = true

 } else {

  isIE = true

 }

}

 

// ***Begin CSS custom API Functions***

// Set zIndex property

function setZIndex(obj, zOrder) {

 obj.zIndex = zOrder

}

// Position an object at a specific pixel coordinate

function shiftTo(obj, x, y) {

 if (isNav) {

  obj.moveTo(x,y)

 } else {

  obj.pixelLeft = x

  obj.pixelTop = y

 }

}

// ***End API Functions***

 

// Global holds reference to selected element

var selectedObj

// Globals hold location of click relative to element

var offsetX, offsetY

 

// Find out which element has been clicked on

function setSelectedElem(evt) {

 if (isNav) {

  // declare local var for use in upcoming loop

  var testObj

  // make copies of event coords for use in upcoming loop

  var clickX = evt.pageX

  var clickY = evt.pageY

  // loop through all layers (starting with frontmost layer)

  // to find if the event coordinates are in the layer

  for (var i = document.layers.length - 1; i >= 0; i--) {

   testObj = document.layers[i]

   if ((clickX > testObj.left) &&

    (clickX < testObj.left + testObj.clip.width) &&

    (clickY > testObj.top) &&

    (clickY < testObj.top + testObj.clip.height)) {

     // if so, then set the global to the layer, bring it

     // forward, and get outa here

     selectedObj = testObj

     setZIndex(selectedObj, 100)

     return

   }

  }

 } else {

  // use IE event model to get the targeted element

  var imgObj = window.event.srcElement

  // make sure it's one of our planes

  if (imgObj.parentElement.id.indexOf("plane") != -1) {

   // then set the global to the style property of the element,

   // bring it forward, and say adios

   selectedObj = imgObj.parentElement.style

   setZIndex(selectedObj,100)

   return

  }

 }

 // the user probably clicked on the background

 selectedObj = null

 return

}

// Drag an element

function dragIt(evt) {

 // operate only if a plane is selected

 if (selectedObj) {

  if (isNav) {

   shiftTo(selectedObj, (evt.pageX - offsetX), (evt.pageY - offsetY))

  } else {

   shiftTo(selectedObj, (window.event.clientX - offsetX), (window.event.clientY - offsetY))

   // prevent further system response to dragging in IE

   return false

  }

 }

}

// Set globals to connect with selected element

function engage(evt) {

 setSelectedElem(evt)

 if (selectedObj) {

  // set globals that remember where the click is in relation to the

  // top left corner of the element so we can keep the element-to-cursor

  // relationship constant throughout the drag

  if (isNav) {

   offsetX = evt.pageX - selectedObj.left

   offsetY = evt.pageY - selectedObj.top

  } else {

   offsetX = window.event.offsetX

   offsetY = window.event.offsetY

  }

 }

 // block mouseDown event from forcing Mac to display

 // contextual menu.

 return false

}

// Restore elements and globals to initial values

function release(evt) {

 if (selectedObj) {

  setZIndex(selectedObj, 0)

  selectedObj = null

 }

}

// Turn on event capture for Navigator

function setNavEventCapture() {

 if (isNav) {

  document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP)

 }

}

// Assign event handlers used by both Navigator and IE (called by onLoad)

function init() {

 if (isNav) {

  setNavEventCapture()

 }

 // assign functions to each of the events (works for both Navigator and IE)

 document.onmousedown = engage

 document.onmousemove = dragIt

 document.onmouseup = release

}

</script>
          <div id=plane1><img name="planePic1" src="http://www.webasp.net/images/logo.gif" border=0 style="cursor:move"></div>

</BODY></HTML>
本文来自: 站长(http://www.qqcf.com) 详细出处参考:http://study.qqcf.com/web/689/174844.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值