我想要实现的目标
赛车偏移是这样的,用户可以设置图像在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'));
答案 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);
}
警告:虽然没有经过测试。