【问题标题】:Greater than selector not working大于选择器不起作用
【发布时间】:2012-09-20 20:41:57
【问题描述】:

我有一个启用滑动手势的图库。通过向左/向右滑动,用户浏览图库。我需要限制滑动 div 的位置,使其不会偏离轨道,即一旦您到达页面,显然所有图像都在右侧,所以我不希望用户向左滑动(到空白空间) .

我尝试使用“大于”,但它不起作用。

var theWidth = $(window).width();

function processingRoutine() {
    var swipedElement = document.getElementById(triggerElementID);

    if ( swipeDirection == 'left' ) {
        $(".frame").animate({marginLeft: '-='+theWidth});
    } else if ( swipeDirection == 'right' ) {
        $(".frame").animate({marginLeft: '+='+theWidth});

        if ( parseInt($(".frame").css("margin-left")) > 1 ) {
            $(".frame").animate({marginLeft: "0px"});
        }
    }
}

您可以在此处查看整个源代码:http://joinersart.co.uk/mtest

【问题讨论】:

  • 我看不到您在哪里使用大于选择器...(在此处发布的内容中)
  • $(".frame").css("margin-left") 出现在 0px.. 您可能需要从返回的字符串中删除 px
  • @wirey 他正在使用parseInt() 所以'0px'很好,但是他应该提供一个基数。 parseInt('0px',10);

标签: jquery css selector parseint


【解决方案1】:

变化:

$(".frame").animate({margin-left: "0px"});

收件人:

$(".frame").animate({marginLeft: "0px"});

【讨论】:

  • 感谢您的回复。我用你的代码更新了我的示例页面,但遗憾的是没有运气。 joinersart.co.uk/mtest
【解决方案2】:

我相信您的问题与 parseInt() 有关。因为 margin-left 的值可以是 '0px' parseInt() 我相信将使用 8 的基数。 (已弃用)如果您使用 parseInt(frame.css("margin-left"), 10),它应该使用基数 10(十进制)将您的字符串解析为正确的整数值。

【讨论】:

  • 我不明白为什么会这样。 0px 仍然是 0,不管它使用什么基数。
【解决方案3】:

我犯了一个简单的错误:

我对 margin-left 应该在哪里注册“禁止”区域感到困惑。我最初认为如果 margin-left 超过 1px 就足够了。事实上,它实际上需要减去我移动的数量。

所以而不是:

  if ( parseInt($(".frame").css("margin-left")) > 1 ){...

应该是:

   if ( parseInt($(".frame").css("margin-left")) > -theWidth ){...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 2018-06-22
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多