『壹』 如何用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> _______________________