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 に答える