导航:首页 > 编程语言 > 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获取元素绝对位置相关的资料

热点内容
c语言程序设计模 浏览:92
儿童怎么做可编程机 浏览:603
数据计算属于什么统计学 浏览:921
07word怎么去掉标记 浏览:979
qq缓存的数据是什么 浏览:348
LED主Kv文件多少兆 浏览:856
苹果edge怎么删除下载文件 浏览:471
sas逻辑回归代码 浏览:572
用于keil下的stc器件数据库 浏览:400
新闻网站后台如何操作前台 浏览:539
在剪映app中怎么查看视频尺寸 浏览:9
linux文件成分包括 浏览:886
文件转换免费的软件 浏览:644
linuxwpsxlsx 浏览:482
小米手机怎么上移动网络连接失败怎么办 浏览:598
win10系统打开java 浏览:479
全日制编程什么意思 浏览:447
笔记本创建局域网怎么传文件 浏览:871
怎样查看id密码 浏览:647
赣州极客晨星少儿编程怎么样 浏览:690

友情链接