2017-04-08 32 views
1

以下JavaScript 「if」語句不讀取參數,因爲我打算讀取兩個參數。當我拍攝bulletOne帶有使用間隔運行的功能bulletOneLeft ++;bulletOne的左側CSS屬性按照預期的每個間隔增加1。但是,當我編碼以下如果語句檢測到bulletOne的CSS style.left屬性,並將其與名爲「targetBox」的元素的CSS style.left屬性進行比較;代碼無法識別這兩個元素的CSS style.left屬性的區別。我的問題是,如果語句執行一次,我該如何使這bulletOne的CSS style.left屬性大於targetBox的CSS style.left屬性的數字?「if」語句參數未按預期運行。 JavaScript

if (bulletOneLeft > targetLeftProp){ 
document.getElementById("targetBox").style.opacity = "0"; 
}; 

bulletOneLefttargetLeftProp用下面的代碼中描述的兩個參數;

bulletOneLeft;

#bulletOne { 
position: absolute; 
background-color: white; 
height: 1px; 
width: 6px; 
top: 0px; 
left: 0px; 
} 
bulletOne.style.left = bulletOneLeft; 

targetLeftProp;

#targetBox{ 
position: absolute; 
background-color: green; 
height: 20px; 
width: 20px; 
top: 30px; 
left: 310px; 
opacity: 1; 
} 
var targetLeftProp = window.getComputedStyle(CSSelement, 
null).getPropertyValue("left"); 

PREVIOUS失敗的嘗試; 我已經嘗試了許多不同的代碼組合,以下是我第一次失敗的嘗試。以下代碼似乎是當時最合乎邏輯的;

var bulletLeft = document.getElementById("bulletOne").style.left; 
var targetLeft = document.getElementById("targetBox").style.left; 

if (bulletOneLeft > targetLeft){ 
    document.getElementById("targetBox").style.opacity = "0"; 
}; 
+0

您的變量名稱在最後一段代碼中不正確。您的變量名爲bulletLeft,並且您使用bulletOneLeft而不是bulletLeft進行if。如果你解決了這個問題,它可能會工作:) – Sorikairo

+0

'.style.left'返回一個字符串,而不是一個整數 – guest271314

+0

作爲對@ guest271314的迴應,你必須使用parseFloat https://www.w3schools.com/jsref/ jsref_parsefloat.asp然後。 – Sorikairo

回答

2

因此,首先你犯了一個錯字,這就是爲什麼它在你失敗的嘗試中不起作用。

您的變量名爲bulletOne,但是您在bulletOneLeft處做了if語句。

另外:

style.left; 

返回一個字符串,所以你要做的使用parseFloat函數或parseInt函數,如果你相信它會永遠是一個int(https://www.w3schools.com/jsref/jsref_parsefloat.asphttps://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/parseInt)如下:

var bulletOne = parseFloat(document.getElementById("bulletOne").style.left; 

你相信我很好。

+0

謝謝,我沒有在實際的代碼中使用錯字,只是在問題中;但解析浮點數是我需要thx好友 – Ghoyos

+0

如果我問一下這個「遊戲」(它看起來是什麼)會在某處發佈還是以某種方式公開發布,請盡情享受吧!可能對你正在做的事情很有趣:) – Sorikairo

+0

它只是一個項目即時通訊工作,其非常基本的,給我發電子郵件在[email protected]和虐待發送整個代碼給你。 – Ghoyos