【发布时间】:2018-08-03 18:42:09
【问题描述】:
我正在尝试制作一个使用导航按钮切换到不同 16:9 部分的滚动图像。一切正常,除了 jQuery 似乎将 if(igBase.css('left') > igMaxLeft) 限制为 -1200 像素或更高,即使 igMaxLeft 是例如 -2600 像素。这种行为有什么原因吗?数学对我来说是正确的。
var igWrap = $('.infographic-wrapper');
var igBase = $('.infographic-base');
var igPrev = $('.infographic-previous');
var igNext = $('.infographic-next');
var igFrameWidth = igWrap.css('width');
var igMaxLeft = parseInt(igBase.css('width'), 10) + parseInt(igFrameWidth, 10);
igMaxLeft = '-' + igMaxLeft + 'px';
igPrev.click(function(){
if(igBase.css('left') < '0px'){
igBase.css('left','+=' + igFrameWidth);
}
});
igNext.click(function(){
if(igBase.css('left') > igMaxLeft){
igBase.css('left','-=' + igFrameWidth);
}
});
【问题讨论】:
-
strings 的
<和>运算符与 numbers 不同(因为</>使用字符串使用 Lexical-aka-字典排序)。例如,这些是“假”:"-200px" < -100、"-200px" < "-100px"。修复:使用带有</>的数字进行正确的数字排序。 -
谢谢,我会把字符串转换成整数。
标签: javascript jquery