2012-04-16 36 views
0

我想讓球在撞擊板時彈起。所以我必須讓棋盤像素在球擊中棋盤時使它反彈。我試過這種方式,但沒有奏效。 這裏是我的代碼 Javascript代碼如何從javascript中的圖像獲取像素索引

var xboard = document.getElementById(board) 
var movx = parseInt(xboard.style.left) 

圖片代碼

<img id="board" style="z-index: 0; left: 300;position: absolute; top: 600px" align=baseline border=0 hspace=0 src="design/board.gif"> 

當我試圖通過

alert(movx) 

它說 「未定義」 的警告框來獲取像素。 任何人都可以幫助我嗎?

+0

這裏是一些討論如何實現的[座標] [1] [1]:http://stackoverflow.com/questions/829252/how-to-find-coordinates-of-an -html鍵式或圖像-跨瀏覽器 – Adil 2012-04-16 10:38:53

+0

這裏是一些討論如何實現的[座標] [1] [1]:http://stackoverflow.com/questions/829252/how查找座標的HTML按鈕或圖像跨瀏覽器 – Adil 2012-04-16 10:40:24

+0

它說,我們必須使用JQuery。但我所要做的就是用javascript做到這一點,講師說我無法使用JQuery – greenthunder 2012-04-16 10:50:01

回答

0

這種方法可以讓你控制通過

<img id="board" style="z-index: 0; left: 300;position: absolute; top: 600px" align=baseline border=0 hspace=0 src="design/board.gif"> 

function findPos(obj){ 
var curleft = 0; 
var curtop = 0; 

if (obj.offsetParent) { 
    do { 
     curleft += obj.offsetLeft; 
     curtop += obj.offsetTop; 
     } while (obj = obj.offsetParent); 

    return {X:curleft,Y:curtop}; 
} 
} 

findPos(document.getElementById('board')); 
alert(curleft); 
alert(curtop); 

的座標有關詳細信息here

+0

所以我必須在函數體中加載findPos函數?如果是的話,我應該寫什麼參數? – greenthunder 2012-04-16 11:41:05

+0

put

1

我認爲你需要聲明的位置與PX:

left: 300px 

似乎工作:http://jsfiddle.net/p2gRq/

+0

我試過,但它沒有工作。結果是undefined – greenthunder 2012-04-16 10:51:22

+0

@greenthunder確保在DOM完成後調用alert - 只需在關閉BODY標籤之前放置腳本即可。 – David 2012-04-16 11:34:49

+0

我把腳本放在頭上,而不是放在身體裏。 – greenthunder 2012-04-16 16:20:52

0

您正在嘗試t o使用實際的元素,而不是它的id

更改此:

var xboard = document.getElementById(board); 

到:

var xboard = document.getElementById('board'); 

並確保你沒有嘗試之前存在它來訪問board

+0

它不工作:( – greenthunder 2012-04-16 11:40:07

+0

你有變量聲明和'alert()'在同一個函數中嗎?確切的錯誤信息是什麼?可能看到整個代碼在這裏或在jsFiddle? – Teemu 2012-04-16 11:43:16

+0

不,我把警報在另一個函數。錯誤消息說:「未定義」 – greenthunder 2012-04-16 16:19:23