鼠标拖动图片至任意位置,JS图片拖放效果。通过下边的代码演示可以看到:页面中的这两张图片可以用鼠标拖动的,在页面装入的时候初始化事件捕获过程,通过这个代码你或许会学会以不少东西,特别是拖动对象的处理。
演示:
<html><head><style type="text/css">#wfuyu1{position:absolute; left:90; top:70; width:121; z-index:0}#wfuyu2{position:absolute; left:250; top:250; width:118; z-index:0}</style><title>可以拖动的图片</title></head><body onLoad="init()"><SCRIPT LANGUAGE="JavaScript">var isNav, isIE //检测浏览器版本if (parseInt(navigator.appVersion) >= 4) {if (navigator.appName == "Netscape") {isNav = true} else {isIE = true}}//设定对象z-Index属性的实用函数function setZIndex(obj, zOrder) {obj.zIndex = zOrder}//这个函数将指定物体定位到指定坐标处。function shiftTo(obj, x, y) {if (isNav) {obj.moveTo(x,y)} else {obj.pixelLeft = xobj.pixelTop = y}}var selectedObjvar offsetX, offsetY//寻找被点击的对象function setSelectedElem(evt) {if (isNav) { //NS浏览器的处理var testObjvar clickX = evt.pageXvar clickY = evt.pageYfor (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)) {selectedObj = testObj //则记录这个对象setZIndex(selectedObj, 100)//将其置于最前return //返回}}} else { //IE浏览器的处理var imgObj = window.event.srcElement //触发事件的对象if (imgObj.parentElement.id.indexOf("wfuyu") != -1) {//判断这个对象是不是预先定义需要被拖动的那个selectedObj = imgObj.parentElement.style//记录这个对象setZIndex(selectedObj,100)//将其调整到最上层return //返回}}//如果点击的对象不是需要拖动的,则会执行到这里selectedObj = null //记录一个空对象return}//拖动一个对象function dragIt(evt) {if (selectedObj) { //如果有被操作对象if (isNav) { //如果浏览器是NSshiftTo(selectedObj, (evt.pageX - offsetX), (evt.pageY - offsetY)) //将对象移动到鼠标的位置} else { //如果是IEshiftTo(selectedObj, (window.event.clientX - offsetX), (window.event.clientY - offsetY))return false //返回false值,阻止接下来的其他处理点击的过程。}}}//鼠标按下时的处理function engage(evt) { /*记录鼠标坐标*/setSelectedElem(evt)if (selectedObj) {if (isNav) {offsetX = evt.pageX - selectedObj.leftoffsetY = evt.pageY - selectedObj.top} else {offsetX = window.event.offsetXoffsetY = window.event.offsetY}}return false}//处理鼠标释放function release(evt) {if (selectedObj) {setZIndex(selectedObj, 0) //将被拖动对象置后selectedObj = null //清除记录的对象}}//为NS设定事件捕获列表function setNavEventCapture() {if (isNav) {document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP)}}//在页面装入的时候初始化事件捕获过程function init() {if (isNav) {setNavEventCapture()}document.onmousedown = engagedocument.onmousemove = dragItdocument.onmouseup = release}</SCRIPT><DIV ID=wfuyu1><IMG NAME="planePic1" SRC="/images/logo.gif" BORDER=0></DIV><DIV ID=wfuyu2><IMG NAME="planePic1" SRC="/images/logo.gif" BORDER=0></DIV><p><b>页面中的这张图片可以用鼠标拖动。</b></p></body></html><div style="text-align:center;margin:30px 0 0 0;"><hr style="color:#999;height:1px;">如不能显示效果,请按Ctrl+F5刷新本页,更多网页代码:<a href='http://www.wfuyu.com/' target='_blank'>http://www.wfuyu.com/</a></div>提示:可修改后代码再运行!
上一篇 JavaScript Document对象内容集合
下一篇 java.sql.SQLException: After end of result set