鼠標拖動圖片至任意位置,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.jyygyx.com/' target='_blank'>http://www.jyygyx.com/</a></div>提示:可修改后代碼再運行!
上一篇 JavaScript Document對象內容集合
下一篇 java.sql.SQLException: After end of result set
程序員人生,我編程,我富裕,記住wfuyu網,php教程,php學習,php手冊,CMS模版制作
聲明:本站大部分內容是作者原創,少部分收集于互聯網供大家一起學習,原版權很多不明,如有侵權請聯系本站,謝謝!
粵ICP備14040726號-1?? 2015-2020 程序員人生 版權所有