Jquery (div滚动跟随)当div遇到另一个div时,(div滚动跟随)也与其他div一起滚动
我有4个div(页眉、左右内容和页脚)。我有Jquery (div滚动跟随)当div遇到另一个div时,(div滚动跟随)也与其他div一起滚动,jquery,Jquery,我有4个div(页眉、左右内容和页脚)。我有右侧内容滚动跟随,我希望发生的是当页脚顶部与右侧底部相交时,右侧也与左侧div一起滚动 我设置了一个我当前在中的预览您可以使用Math.min()和一个预先计算的值来限制右侧栏的marginTop设置,这样它的动画就不会超出与页脚接触的点: 我已将预先计算的值命名为rightDelta $(function() { var $sidebar = $("#right"), $window = $(window),
右侧内容
滚动跟随,我希望发生的是当页脚顶部与右侧
底部相交时,右侧也与左侧div
一起滚动
我设置了一个我当前在中的预览您可以使用
Math.min()
和一个预先计算的值来限制右侧栏的marginTop设置,这样它的动画就不会超出与页脚接触的点:
我已将预先计算的值命名为rightDelta
$(function() {
var $sidebar = $("#right"),
$window = $(window),
rightOffset = $sidebar.offset(),
rightDelta = $("#footer").offset().top - $("#header").offset().top - $("#header").outerHeight() - $("#right").outerHeight(),
topPadding = 15;
$window.scroll(function() {
if ($window.scrollTop() > rightOffset.top) {
$sidebar.stop().animate({
marginTop: Math.min($window.scrollTop() - rightOffset.top + topPadding, rightDelta)
});
} else {
$sidebar.stop().animate({
marginTop: 0
});
}
});
});
实际上,您可以结合使用Math.min()
和Math.max()
使滚动处理程序成为一个单语句函数:
$(function() {
var $sidebar = $("#right"),
$window = $(window),
rightOffset = $sidebar.offset(),
rightDelta = $("#footer").offset().top - $("#header").offset().top - $("#header").outerHeight() - $("#right").outerHeight(),
topPadding = 15;
$window.scroll(function() {
$sidebar.stop().animate({
marginTop: Math.max(Math.min($window.scrollTop() - rightOffset.top + topPadding, rightDelta), 0)
});
});
});
看看这个。。你的问题似乎也一样。。谢谢你的回复,如果我们有相同的情况,我会重新考虑。我想我们的情况不一样,或者可能我错了。谢谢你的回复。