修复if语句以停止移动

时间:2013-12-12 23:11:05

标签: javascript jquery scroll attr

我想要实现的目标

赛车偏移是这样的,用户可以设置图像在px中移动的距离。偏移量管理它抵消了多远。 Speed-racer告诉您在滚动过程中图像的移动速度。我的问题是它没有停止。我可以提供一个小提琴,但让我们首先尝试看看这是否很容易修复没有它。感谢。

HTML

 <img class="images" racer-offset="250" speed-racer="3" src="http://assets/img/fwman/FeeneyMan_bike.png" loc="576" style="left: 540px;" offsetted="924">

的Javascript

    $(window).scroll(function(){
    $('.images').each(function(){
        if($('this').attr('racer-offset') < $(this).attr('offsetted')){

        }
        else {
    var speedR = $(this).attr('speed-racer');
    $('.images').css({left : "-="+speedR});
    $('.images').attr('offsetted', $(this).position().left);
    }
    });
});

   $('.images').each(function(){
        $(this).attr('loc', $(this).position().left);
   });

新版

$(window).scroll(function(){
    if(lastLeftLocation > $(document).scrollLeft()) {
        $('.images').each(function(){
                if($(this).position().left >= $(this).attr('loc')){
                console.log("0 == stopped");

                }
                else {
                speedR = $(this).attr('speed-racer');
                $(this).css({left : "+="+speedR});
                $(this).attr('racer-offset') + speedR;
                $(this).attr('racer-offset', $(this).attr('speed-racer') + $(this).attr('racer-offset'));
                }
            });
        }
    else {
        $('.images').each(function(){
            if($(this).attr('racer-offset') <= 0){
            console.log("0 == stopped");
            }
            else {
            speedR = $(this).attr('speed-racer');
            $(this).css({left : "-="+speedR});
            $(this).attr('racer-offset', $(this).attr('racer-offset') - speedR);
            }
        });
    }


});

唯一需要解决的问题是我需要使用speed-racer来添加if部分中的racer偏移量。

       $(this).attr('racer-offset', $(this).attr('speed-racer') + $(this).attr('racer-offset'));

2 个答案:

答案 0 :(得分:0)

出于某种原因,你的引号内有this ..

$(this) $('this')不一样。

if($('this').

应该

if($(this).

答案 1 :(得分:0)

代码的这一部分不应该是:

var speedR = $(this).attr('speed-racer');
//$('.images').css({left : "-="+speedR});
$(this).css({left: "-="+speedR});
//$('.images').attr('offsetted', $(this).position().left);
$(this).attr('offsetted', $(this).position().left);
}

警告:虽然没有经过测试。