1

スクロール div を作成しようとしています。特定の最上部の位置に到達し、最下部までスクロールした時点で divを停止 (thescrollingdiv) し、親 div を無限スクロール ゾーンに追い越さないようにしたいと考えていました。 thescrollingdiv高さは指定されていませんが、その親 div は指定されています。ありがとうございます。

$('#div a).click(function(e){ e.preventDefault(); $('#thescrollingdiv').stop(true,true).animate({ "top": '-=100px'}, 500)

4

1 に答える 1

0

ScrollTop は、現在の場所を示します。スクロールトップに対して既存のトップを確認し、計算を行って制限を設定します。

var scrollTop = $('#thescrollingdiv').scrollTop();
var newTop = parseFloat($('#thescrollingdiv').css('top')) - 100;

if (scrollTop < 0) {
  newTop = 0;
}

$('#thescrollingdiv').stop(true,true).animate({ "top": newTop}, 500)

アップデート

このようなもの。

var topLimit = 0;
var bottomLimit = 800;

var containerTop = parseFloat($('container').css('top'));
var containerBottom = parseFloat($('container').css('height')) + containerTop;

var destination = containerTop - 100;

// compensate for going too far up
destination = (destination < 0) ? 0 : destination;

// compensate for going too far up
destination = (containerBottom > bottomLimit) ? bottomLimit : destination;

// now that you know you are within your custom limits, animate it.
animate(destination);

あなたのコードがどのように見えるかわからないので、これはほとんど疑似コードですが、アイデアを提供します。そもそもanimateを呼び出す前に、実際に「newTop」の制限を設定する作業を行う必要があります。

あなたはそれを理解することができます。ただし、怠惰なプログラマーにならないでください。

于 2013-10-09T18:22:26.363 に答える