javascript - jQuery 是否限制大于语句的值?

标签 javascript jquery

我正在尝试制作一个滚动图像,使用导航按钮切换到不同的 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);
        }
    });

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

最佳答案

将 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/

相关文章:

javascript - 如何根据类的属性对数组进行排序?

javascript - 如何强制网页脱离 native 移动应用程序?

javascript - 有没有更有效的方法从 Javascript 中的对象填充表?

javascript - 页面加载时推特框的 jQuery CSS 高度

javascript 按钮的集合,每个按钮提交不同的值

javascript - 如何在 FTL 中访问 Jquery 的变量?

javascript - jquery 用于下拉选择

javascript - jquery ui 自动完成结果框在左上角

javascript - 使用 ng-style 进行背景渐变时出现 AngularJS 语法错误

jquery 使用 twitter-bootstrap 工具提示删除焦点问题