2013-12-22 89 views
0

我正在使用脚本来移动页面上的某些背景元素。它通过移动名为#tright的元素的“右”位置来工作。这类似于视差效应。所有这些都很好,除了我希望#right元素在右值大于0时停止移动。我试图将所有内容放在if语句中。所以如果该值大于0,什么都不做。如果它小于零,继续前进。我显然不是程序员,所以我甚至不确定这是否是最好的方法。谁能告诉我,我做错了什么CSS位置和if语句在jquery

$(window).bind('scroll',function(e){ 
    moveTriangles(); 
}); 

function moveTriangles(){ 
    var scrolled = $(window).scrollTop(); 
    var rightTriPosition = $('canvas#tRight.bTri').css("right"); 

if (rightTriPosition < 0){ 
    $('#tRight').css('right',(-70+(scrolled*.10))+'%'); 
} 
else{ 
} 

} 

回答

0

css()返回与一个单元的值。现在你正在比较这样的东西('-100px' < 0)。您需要在将该值与数字进行比较之前摆脱该单位。例如像这样:

var rightTriPosition = parseFloat($('canvas#tRight.bTri').css("right")); 

如果你不希望在没有通过比较来执行什么,你可以简单地忽略else

+0

哇我永远不会那样做。作品。谢谢!我唯一的问题是,最初计算“正确”值的公式会在用户向后滚动屏幕时反转。例如,当您向下滚动时,该对象向左移动,然后向上滚动时向右移动。该功能停止使用此解决方案。当它达到“0”时,对象会被冻结。无论如何,我可以拥有两全其美的最佳体验?我玩过else语句,甚至添加了另一个if语句,但没有运气...... –

+0

请发布与此相关的整个代码,我们将看看它有什么问题。这回答你的原始问题,但... – Teemu