我正在尝试制作一个滚动图像,使用导航按钮切换到不同的 16:9 部分。一切正常,除了 jQuery 似乎将 if(igBase.css('left') > igMaxLeft)
限制为 -1200px 或更大,即使 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);
}
});
最佳答案
将 css 像素字符串转换为整数解决了问题。感谢 user2864740 的提示。
var igMaxLeft = (parseInt(igBase.css('width'), 10) - parseInt(igFrameWidth, 10)) * -1;
igPrev.click(function(){
if(parseInt(igBase.css('left'), 10) < 0){
igBase.css('left','+=' + igFrameWidth);
}
});
igNext.click(function(){
if( 0 >= parseInt(igBase.css('left'), 10) && parseInt(igBase.css('left'), 10) > igMaxLeft){
igBase.css('left','-=' + igFrameWidth);
}
});
关于javascript - jQuery 是否限制大于语句的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48952416/