導航:首頁 > 編程語言 > js獲取元素絕對位置

js獲取元素絕對位置

發布時間:2023-09-22 09:07:11

『壹』 如何用js 獲取DIV的坐標位置

js獲取DIV的位置坐標的方法有三種,分別如下:

方法一:

?
var odiv=document.getElementByIdx_x('divid');
alert(odiv.getBoundingClientRect().left);
alert(odiv.getBoundingClientRect().top);
方法二:

?
function CPos(x, y)
{
this.x = x;
this.y = y;
}

function GetObjPos(ATarget)
{
var target = ATarget;
var pos = new CPos(target.offsetLeft, target.offsetTop);

var target = target.offsetParent;
while (target)
{
pos.x += target.offsetLeft;
pos.y += target.offsetTop;

target = target.offsetParent
}
return pos;
}

var obj = document.getElementByIdx_x('divid')
alert(GetObjPos(obj)['x']) //x坐標
alert(GetObjPos(obj)['y']) //y坐標

方法三:

?

function getElementPos(elementId){
var ua = navigator.userAgent.toLowerCase();
var isOpera = (ua.indexOf('opera') != -1);
var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof
var el = document.getElementByIdx_x(elementId);
if (el.parentNode === null || el.style.display == 'none') {
return false;
}
var parent = null;
var pos = [];
var box;
if (el.getBoundingClientRect) //IE
{
box = el.getBoundingClientRect();
var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
return {
x: box.left + scrollLeft,
y: box.top + scrollTop
};
}
else
if (document.getBoxObjectFor) // gecko
{
box = document.getBoxObjectFor(el);
var borderLeft = (el.style.borderLeftWidth) ? parseInt(el.style.borderLeftWidth) : 0;
var borderTop = (el.style.borderTopWidth) ? parseInt(el.style.borderTopWidth) : 0;
pos = [box.x - borderLeft, box.y - borderTop];
}
else // safari & opera
{
pos = [el.offsetLeft, el.offsetTop];
parent = el.offsetParent;
if (parent != el) {
while (parent) {
pos[0] += parent.offsetLeft;
pos[1] += parent.offsetTop;
parent = parent.offsetParent;
}
}
if (ua.indexOf('opera') != -1 || (ua.indexOf('safari') != -1 && el.style.position == 'absolute'))

{
pos[0] -= document.body.offsetLeft;
pos[1] -= document.body.offsetTop;
}
}
if (el.parentNode) {
parent = el.parentNode;
}
else {
parent = null;
}
while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML') { // account for any scrolled

ancestors
pos[0] -= parent.scrollLeft;
pos[1] -= parent.scrollTop;
if (parent.parentNode) {
parent = parent.parentNode;
}
else {
parent = null;
}
}
return {
x: pos[0],
y: pos[1]
};
}

var xd = getElementPos("divid");
alert(xd.x);
alert(xd.y);

『貳』 請教javascript中取得對象絕對位置的問題

我寫過這樣的練習,我把我之前寫的給你發過來,你自己研究研究。

首先:js代碼

functionNUM(b){}
functionoMove(event,obj){
varleft1=document.body.clientLeft;
varleft2=obj.offsetLeft;
varleft3=obj.clientLeft;
varsX=left1+left2+left3;
//----獲得元素左端到瀏覽器左端的距離
vartop1=document.body.clientTop;
vartop2=obj.offsetTop;
vartop3=obj.clientTop;
varsY=top1+top2+top3;
//----獲得元素頂端到瀏覽器頂端的距離
vare=event||window.event||arguments.callee.caller.arguments[0];
varX=e.clientX;
//----獲得滑鼠到瀏覽器左端的距離
varY=e.clientY;
//----獲得滑鼠到瀏覽器頂端的距離
X=X-sX;
Y=Y-sY;
//----計算滑鼠在元素中的坐標
varoW=obj.clientWidth;
varoH=obj.clientHeight;
X=(X/oW/2-0.250).toFixed(2);
Y=(Y/oH/2-0.250).toFixed(2);
varaVal='transform:rotate3d('+X+','+Y+',0,45deg)';
//----計算滑鼠在元素中的百分比坐標
obj.setAttribute('style',aVal);
}
window.onload=function(){
vara=document.getElementsByClassName('imgAll')[0];
varb=a.getElementsByTagName('img');
for(vari=0;i<b.length;i++){
b[i].setAttribute('onmousemove','oMove(event,this)');
}
}

html代碼:

<html>	
<head>
<metacharset='utf-8'>
<scripttype='text/javascript'src='indexJs.js'></script>
<linkrel='stylesheet'href='indexCss.css'type='text/css'/>
</head>
<body>
<divclass='imgAll'>
<imgsrc='img/img-1.png'>
<imgsrc='img/img-2.png'>
</div>
<divid='tText'></div>
</body>
</html>

css代碼:

body{
margin:0;
padding:0;
}
#tText{
text-align:center;
}
.imgAll{
text-align:center;
padding-top:200px;
}
.imgAll>img{
height:200px;
margin:10px;
box-shadow:2px2px2px2pxrgba(0,0,0,0.7);
}

還有兩張圖片

『叄』 JS中怎麼獲取input所在頁面的絕對坐標

你好,JS沒有直接獲取元素相對於頁面的絕對坐標的方法。但是我們可以通過相回關值的計算而得答到。首先我們假設input元素ID為"J_MyInput",然後看下面代碼注釋:

varinput=document.getElementById('J_MyInput');//根據ID取得元素對象
varsizeObj=input.getBoundingClientRect();//取得元素距離窗口的絕對位置
//窗口的滾動偏移(垂直、水平)
varbodyOffset={top:document.body.scrollTop,left:document.body.scrollLeft};

//元素相對於頁面的絕對位置=窗口滾動偏移+元素相對於窗口的絕對位置
varinputOffsetTop=sizeObj.top+bodyOffset.top;//距頂部
varinputOffsetLeft=sizeObj.left+bodyOffset.left;//距左側

希望能解決你的問題,有疑問可追問,望採納~

『肆』 js中怎麼獲取數組中元素的位置

可以用Array中自帶的方法:
arrayObj.shift( )
shift 方法可移除數組中的第一個版元素權並返回該元素。
例如:
var ary=[1,2,3,4];
var a=ary.shift();//a=1;ary=[2,3,4];

arrayObj.slice(start, [end])

slice 方法返回一個 Array 對象,其中包含了 arrayObj 的指定部分。
參數:start,截取數組開始下標。end截止的下標,但不包括end元素
例如:
var ary=[1,2,3,4];
var newary=ary.slice(0, 2);//newary=[1,2],不包括下標2 所對應的元素3。

『伍』 js如何獲取圖片的絕對路徑

理論是可以的,首先用js取得location,然後在和圖片路徑相加 哦 想復雜了 其實很簡單,你在image元素裡面加個onclick事件,這樣寫 <table><tr> <td><input type="image" id="expression1" name="expression1" src="1.gif" onClick="soso(this)></td> <td><input type="image" id="expression2" name="expression2" src="2.gif" onClick="soso(this)></td> <td><input type="image" id="expression3" name="expression3" src="3.gif" onClick="soso(this)></td> <td><input type="image" id="expression4" name="expression4" src="4.gif" onClick="soso(this)></td> <td><input type="image" id="expression5" name="expression5" src="5.gif" onClick="soso(this)></td> </tr></table> <div id="abc"> </div> <script language="javascript"> function soso(tt){ document.all("abc").innerHTML="<img Src='"+tt.src+"'>" } </script> _______________________

閱讀全文

與js獲取元素絕對位置相關的資料

熱點內容
編程什麼最好做 瀏覽:872
滴滴app沒有什麼功能 瀏覽:493
機器人喝編程到底該學哪個 瀏覽:704
買房哪個網站好 瀏覽:913
打完新冠疫苗下載什麼app可以查到 瀏覽:879
海信電視用哪個app看網路電視 瀏覽:96
編程什麼時候流行的 瀏覽:683
自學編程新手看什麼書 瀏覽:180
linux全盤tar 瀏覽:454
ps文件命名自動輸入怎麼辦 瀏覽:467
iphone6plus切圖 瀏覽:822
iphone6沒有提示更新 瀏覽:41
cc網路圖教程 瀏覽:650
u盤無法剪切文件到電腦里 瀏覽:497
中海達靜態數據大概多少內存 瀏覽:599
蘋果6s手機文件管理器 瀏覽:107
qq頭像非主流女生捂臉 瀏覽:736
java判斷string編碼 瀏覽:941
excel工資簿如何匹配相同數據 瀏覽:159
視頻課程學習有哪些app 瀏覽:375

友情鏈接