1

试图创建一个滚动的 div。想要在 (thescrollingdiv) div 到达特定的顶部位置并一直滚动到底部并且不超出父 div 进入无限滚动区域时停止 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 回答