0

和这个斗争了一段时间。看起来很简单,但我似乎缺乏让它工作所需的逻辑。

我想将垂直的 .scrollTop 位置转换为代表文档中用户垂直位置的水平条。

我认为我的数学很糟糕;我准备好在火焰中被击落。

var pos = $("#content").scrollTop();
var convert = (pos / 1024);

$(document).scroll(function() {
    $(".place").animate({
        left: '+=' + pos
    }, slow);
});​

这是我到目前为止的位置'place' div 不想移动。

4

1 回答 1

1

首先将滚动位置转换为百分比

 var s = $(window).scrollTop(),
    d = $(document).height(),
    c = $(window).height();
  var percent =  scrollPercent = (s / (d-c))

然后通过使用 .placebar 宽度的百分比来获取您当前的位置

var newPos = percent*1024;

if(newPos > 984) { //check to stop limit
   newPos = 984;
}

$("#place").stop().animate({
    left: newPos +"px"
});

小提琴

于 2012-07-27T11:39:04.193 回答