鼠標(biāo)拖動(dòng)圖片至任意位置,JS圖片拖放效果。通過(guò)下邊的代碼演示可以看到:頁(yè)面中的這兩張圖片可以用鼠標(biāo)拖動(dòng)的,在頁(yè)面裝入的時(shí)候初始化事件捕獲過(guò)程,通過(guò)這個(gè)代碼你或許會(huì)學(xué)會(huì)以不少東西,特別是拖動(dòng)對(duì)象的處理。
演示:
<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>可以拖動(dòng)的圖片</title></head><body onLoad="init()"><SCRIPT LANGUAGE="JavaScript">var isNav, isIE //檢測(cè)瀏覽器版本if (parseInt(navigator.appVersion) >= 4) {if (navigator.appName == "Netscape") {isNav = true} else {isIE = true}}//設(shè)定對(duì)象z-Index屬性的實(shí)用函數(shù)function setZIndex(obj, zOrder) {obj.zIndex = zOrder}//這個(gè)函數(shù)將指定物體定位到指定坐標(biāo)處。function shiftTo(obj, x, y) {if (isNav) {obj.moveTo(x,y)} else {obj.pixelLeft = xobj.pixelTop = y}}var selectedObjvar offsetX, offsetY//尋找被點(diǎn)擊的對(duì)象function setSelectedElem(evt) {if (isNav) { //NS瀏覽器的處理var testObjvar clickX = evt.pageXvar clickY = evt.pageYfor (var i = document.layers.length - 1; i >= 0; i--) { //遍歷頁(yè)面中的對(duì)象testObj = document.layers[i] //當(dāng)前對(duì)象if ((clickX > testObj.left) && //如果鼠標(biāo)在當(dāng)前對(duì)象范圍內(nèi)(clickX < testObj.left + testObj.clip.width) &&(clickY > testObj.top) &&(clickY < testObj.top + testObj.clip.height)) {selectedObj = testObj //則記錄這個(gè)對(duì)象setZIndex(selectedObj, 100)//將其置于最前return //返回}}} else { //IE瀏覽器的處理var imgObj = window.event.srcElement //觸發(fā)事件的對(duì)象if (imgObj.parentElement.id.indexOf("wfuyu") != -1) {//判斷這個(gè)對(duì)象是不是預(yù)先定義需要被拖動(dòng)的那個(gè)selectedObj = imgObj.parentElement.style//記錄這個(gè)對(duì)象setZIndex(selectedObj,100)//將其調(diào)整到最上層return //返回}}//如果點(diǎn)擊的對(duì)象不是需要拖動(dòng)的,則會(huì)執(zhí)行到這里selectedObj = null //記錄一個(gè)空對(duì)象return}//拖動(dòng)一個(gè)對(duì)象function dragIt(evt) {if (selectedObj) { //如果有被操作對(duì)象if (isNav) { //如果瀏覽器是NSshiftTo(selectedObj, (evt.pageX - offsetX), (evt.pageY - offsetY)) //將對(duì)象移動(dòng)到鼠標(biāo)的位置} else { //如果是IEshiftTo(selectedObj, (window.event.clientX - offsetX), (window.event.clientY - offsetY))return false //返回false值,阻止接下來(lái)的其他處理點(diǎn)擊的過(guò)程。}}}//鼠標(biāo)按下時(shí)的處理function engage(evt) { /*記錄鼠標(biāo)坐標(biāo)*/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}//處理鼠標(biāo)釋放function release(evt) {if (selectedObj) {setZIndex(selectedObj, 0) //將被拖動(dòng)對(duì)象置后selectedObj = null //清除記錄的對(duì)象}}//為NS設(shè)定事件捕獲列表function setNavEventCapture() {if (isNav) {document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP)}}//在頁(yè)面裝入的時(shí)候初始化事件捕獲過(guò)程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>頁(yè)面中的這張圖片可以用鼠標(biāo)拖動(dòng)。</b></p></body></html><div style="text-align:center;margin:30px 0 0 0;"><hr style="color:#999;height:1px;">如不能顯示效果,請(qǐng)按Ctrl+F5刷新本頁(yè),更多網(wǎng)頁(yè)代碼:<a href='http://www.vxbq.cn/' target='_blank'>http://www.vxbq.cn/</a></div>提示:可修改后代碼再運(yùn)行!
上一篇 JavaScript Document對(duì)象內(nèi)容集合
下一篇 java.sql.SQLException: After end of result set
程序員人生,我編程,我富裕,記住wfuyu網(wǎng),php教程,php學(xué)習(xí),php手冊(cè),CMS模版制作
聲明:本站大部分內(nèi)容是作者原創(chuàng),少部分收集于互聯(lián)網(wǎng)供大家一起學(xué)習(xí),原版權(quán)很多不明,如有侵權(quán)請(qǐng)聯(lián)系本站,謝謝!
粵ICP備14040726號(hào)-1?? 2015-2020 程序員人生 版權(quán)所有