特定のポイントに達した後にのみ、divがスクロールバーをたどるようにこのメソッドを見つけて適応させました。
$.fn.followFrom = function (pos, left_fixed, left_absolute) {
var $this = this,
$window = $(window);
$window.scroll(function (e) {
if ($window.scrollTop() < pos) {
$this.css({ // no move
position: 'absolute',
top: 400,
left: left_absolute
});
} else { // move
$this.css({
position: 'fixed',
top: 220,
left: left_fixed
});
}
});
};
奇妙なことに (またはそうではない?)、div の右側にコンテンツがある場合にのみ機能します。しかし、それが画面の一番下の要素である場合、スクロールしてその位置に到達すると、スクロール バーがジャンプして一番上に戻ります。これは非常にイライラするユーザー エクスペリエンスです。
コンテキストは検索ページで、左側の移動 div にマップがあり、右側に検索結果があります。そのため、結果を下にスクロールしても、マップが左側に表示されたままになるようにします。
したがって、結果があり、結果の高さがマップの高さよりも大きい場合にのみ機能します。しかし、結果の高さが短くなるとすぐに、私はジャンプします。
ありがとう