以下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";
};
bulletOneLeft和targetLeftProp用下面的代碼中描述的兩個參數;
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";
};
您的變量名稱在最後一段代碼中不正確。您的變量名爲bulletLeft,並且您使用bulletOneLeft而不是bulletLeft進行if。如果你解決了這個問題,它可能會工作:) – Sorikairo
'.style.left'返回一個字符串,而不是一個整數 – guest271314
作爲對@ guest271314的迴應,你必須使用parseFloat https://www.w3schools.com/jsref/ jsref_parsefloat.asp然後。 – Sorikairo