JavaScript與Div對層定位和移動獲得坐標的實現(xiàn)代碼
更新時間:2010年09月08日 11:28:21 作者:
JavaScript與Div對層定位和移動獲得坐標的實現(xiàn)代碼,需要的朋友可以參考下。
1:移動圖層 獲得點的x軸y軸坐標,從而進行絕對定位(注意:豎拉框會影響 x 軸 y 軸坐標值)
var x,y,z,down=false,obj
function init(){
obj=event.srcElement //事件觸發(fā)對象
obj.setCapture() //設置屬于當前對象的鼠標捕捉
z=obj.style.zIndex //獲取對象的z軸坐標值
//設置對象的z軸坐標值為100,確保當前層顯示在最前面
obj.style.zIndex=100
x=event.offsetX //獲取鼠標指針位置相對于觸發(fā)事件的對象的X坐標
y=event.offsetY //獲取鼠標指針位置相對于觸發(fā)事件的對象的Y坐標
down=true //布爾值,判斷鼠標是否已按下,true為按下,false為未按下
}
function moveit(){
//判斷鼠標已被按下且onmouseover和onmousedown事件發(fā)生在同一對象上
if(down&&event.srcElement==obj){
with(obj.style){
/*設置對象的X坐標值為文檔在X軸方向上的滾動距離加上當前鼠標指針相當于文檔對象的X坐標值減鼠標按下時指針位置相對于觸發(fā)事件的對象的X坐標*/
// posLeft=event.x-x;
posLeft=document.body.scrollLeft+event.x-x;
/*設置對象的Y坐標值為文檔在Y軸方向上的滾動距離加上當前鼠標指針相當于文檔對象的Y坐標值減鼠標按下時指針位置相對于觸發(fā)事件的對象的Y坐標*/
// posTop=event.y-y;
posTop=document.body.scrollTop+event.y-y;
window.status="posLeft="+posLeft+",posTop="+posTop;
window.status=window.status+"clientX="+event.clientX+"clientY="+event.clientY+"scrollLeft="+document.body.scrollLeft+"scrollTop="+document.body.scrollTop+",event.y="+event.y+",event.x"+event.x;
}
}
}
function stopdrag(){
//onmouseup事件觸發(fā)時說明鼠標已經(jīng)松開,所以設置down變量值為false
down=false
obj.style.zIndex=z //還原對象的Z軸坐標值
obj.releaseCapture() //釋放當前對象的鼠標捕捉
//alert("X:"+obj.style.left+";Y:"+obj.style.top);
}
2:為了使圖層在不同分辨率瀏覽器上顯示同樣的效果,我們需要對圖層定位設置
第一步:對最外層 進行相對定位
<div id="t" style="position:relative;top:0px;left:0px;"> </div>
第二步:在相對里面進行決對定位(這樣圖層就不會隨著分辨率的改變而變形)
<div id="t" style="position:relative;top:0px;left:0px;">
<div id="tt" style="position:absolute;top:9px;left:317px;">
<IMG id="hong" SRC="main/1.jpg" WIDTH="8" HEIGHT="8" BORDER="0"
ALT="" />
</div>
<div >省略</div>
<div >省略</div>
<div >省略</div>
<div >省略</div>
<div >省略</div>
<div >省略</div>
<div >省略</div>
<div >省略</div>
<div >省略</div>
//===================(層移動方法調用)=============================
<div onmousedown=init() onmousemove=moveit()
onmouseup=stopdrag()
style="position:absolute;left:60;top:190;width:5;height:5;z-index:99;;border:1px solid #000000;">
D
</div>
</div>
復制代碼 代碼如下:
var x,y,z,down=false,obj
function init(){
obj=event.srcElement //事件觸發(fā)對象
obj.setCapture() //設置屬于當前對象的鼠標捕捉
z=obj.style.zIndex //獲取對象的z軸坐標值
//設置對象的z軸坐標值為100,確保當前層顯示在最前面
obj.style.zIndex=100
x=event.offsetX //獲取鼠標指針位置相對于觸發(fā)事件的對象的X坐標
y=event.offsetY //獲取鼠標指針位置相對于觸發(fā)事件的對象的Y坐標
down=true //布爾值,判斷鼠標是否已按下,true為按下,false為未按下
}
function moveit(){
//判斷鼠標已被按下且onmouseover和onmousedown事件發(fā)生在同一對象上
if(down&&event.srcElement==obj){
with(obj.style){
/*設置對象的X坐標值為文檔在X軸方向上的滾動距離加上當前鼠標指針相當于文檔對象的X坐標值減鼠標按下時指針位置相對于觸發(fā)事件的對象的X坐標*/
// posLeft=event.x-x;
posLeft=document.body.scrollLeft+event.x-x;
/*設置對象的Y坐標值為文檔在Y軸方向上的滾動距離加上當前鼠標指針相當于文檔對象的Y坐標值減鼠標按下時指針位置相對于觸發(fā)事件的對象的Y坐標*/
// posTop=event.y-y;
posTop=document.body.scrollTop+event.y-y;
window.status="posLeft="+posLeft+",posTop="+posTop;
window.status=window.status+"clientX="+event.clientX+"clientY="+event.clientY+"scrollLeft="+document.body.scrollLeft+"scrollTop="+document.body.scrollTop+",event.y="+event.y+",event.x"+event.x;
}
}
}
function stopdrag(){
//onmouseup事件觸發(fā)時說明鼠標已經(jīng)松開,所以設置down變量值為false
down=false
obj.style.zIndex=z //還原對象的Z軸坐標值
obj.releaseCapture() //釋放當前對象的鼠標捕捉
//alert("X:"+obj.style.left+";Y:"+obj.style.top);
}
2:為了使圖層在不同分辨率瀏覽器上顯示同樣的效果,我們需要對圖層定位設置
第一步:對最外層 進行相對定位
復制代碼 代碼如下:
<div id="t" style="position:relative;top:0px;left:0px;"> </div>
第二步:在相對里面進行決對定位(這樣圖層就不會隨著分辨率的改變而變形)
復制代碼 代碼如下:
<div id="t" style="position:relative;top:0px;left:0px;">
<div id="tt" style="position:absolute;top:9px;left:317px;">
<IMG id="hong" SRC="main/1.jpg" WIDTH="8" HEIGHT="8" BORDER="0"
ALT="" />
</div>
<div >省略</div>
<div >省略</div>
<div >省略</div>
<div >省略</div>
<div >省略</div>
<div >省略</div>
<div >省略</div>
<div >省略</div>
<div >省略</div>
//===================(層移動方法調用)=============================
復制代碼 代碼如下:
<div onmousedown=init() onmousemove=moveit()
onmouseup=stopdrag()
style="position:absolute;left:60;top:190;width:5;height:5;z-index:99;;border:1px solid #000000;">
D
</div>
</div>
相關文章
Jquery+javascript實現(xiàn)支付網(wǎng)頁數(shù)字鍵盤
這篇文章主要為大家詳細介紹了Jquery+javascript實現(xiàn)支付網(wǎng)頁數(shù)字鍵盤,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-12-12
JavaScript中運算符規(guī)則和隱式類型轉換示例詳解
JavaScript中運算符規(guī)則的隱式類型轉換是什么? 這是每個學習Javascript的新手們都應該知道的一個問題,下面這篇文章主要給大家介紹了關于JavaScript中運算符規(guī)則和隱式類型轉換的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09
uniapp改變底部安全區(qū)頂部手機信號時間電池欄顏色樣式
這篇文章主要為大家介紹了uniapp改變底部安全區(qū)頂部手機信號時間電池欄顏色樣式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
javascript實現(xiàn)查找數(shù)組中最大值方法匯總
本文給大家匯總了一下使用javascript實現(xiàn)查找數(shù)組中最大最小值的一些方法,非常的簡單實用,有需要的小伙伴可以來參考下。2016-02-02
javascript的trim,ltrim,rtrim自定義函數(shù)
今天用到javascript去掉一個文本框中字符串兩端的空格,開始還以為有trim,ltrim,rtrim函數(shù)(asp中有這三個函數(shù),弄混了),結果找半天,沒有找到。最后找到用正則實現(xiàn)這樣功能的自定義函數(shù)。2008-09-09

