2 つの負の数を比較しようとしていますが、比較に失敗します。この特定のケースでgetLeftPercent()
は、負の数 (-14) ですが、比較するとアクション B が実行されます。論理的には、(-14) は (-10) より小さいため、アクション A を実行する必要があります。
右側の比較オペランド (-10) を正の数 (たとえば 1) に変更すると、アクション A が実行されます。私が見落としている JavaScript の癖はありますか (私をじっと見つめています)。完全なコードを投稿できますが、それ以上のものはありません。
$(function() {
// the statement in question
if (parseInt(getLeftPercent(), 10) < -10) {
// do action A
// this is just a debug statement
$('#posbanner').html('element position is less than negative 10');
} else {
// do action B
// this is just a debug statement
$('#posbanner').html('element position is greater than or equal to negative 10');
}
});
// element left position on page
function getLeftPercent() {
var leftStr = $('#sidebar').css('left'),
pxPos = leftStr.indexOf('px'),
leftVal = leftStr.substr(0, pxPos),
leftPercent = (leftVal / $(window).width() * 100).toString(),
dotPos = leftPercent.indexOf('.'),
leftPercentStr = dotPos == -1 ? leftPercent : leftPercent.substr(0, dotPos);
return leftPercentStr;
};