jQuery是否将值限制为大于语句?

时间:2018-02-23 16:35:53

标签: javascript jquery

我正在尝试使用导航按钮制作一个滚动图像,切换到不同的16:9部分。一切正常,除了jQuery似乎将if(igBase.css('left') > igMaxLeft)限制为-1200px或更高,即使igMaxLeft是例如-2600px。这种行为有什么理由吗?数学看起来对我来说。

    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);
        }
    });

以下是完整示例:https://codepen.io/arinthros/pen/YejRey

1 个答案:

答案 0 :(得分:1)

将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);
        }
    });