1

我正在尝试生成这种效果,即当您单击按钮时,页面将滚动到 div 并将浏览器的底部与 div 的底部对齐。我一直在搞乱 scrollTop() 和 offset() 但还没有让它工作。有任何想法吗?

4

3 回答 3

4

您可以使用以下代码

var wHeight = $(window).height(); // Height of view port
var eOffset = $('#elementID').offset().top; // Y-offset of element
var eHeight = $('#elementID').height(); // Height of element

$(window).scrollTop(eOffset - wHeight + eHeight); // See below for explanation

解释

  1. 您将 设置.scrollTop()为将元素放置在窗口顶部的元素的 y 偏移量
  2. 然后减去将元素从屏幕上移开的视口高度(就在下方)
  3. 然后添加元素的高度以将视口底部与浏览器底部对齐
于 2013-07-19T21:58:25.190 回答
0

我会用.scrollHeight:

$("#div1").animate({ scrollTop: $("#div1").scrollHeight}, 1000);

已编辑

那是因为你必须计算高度等

var scrollBottom = $(window).scrollTop() + $(window).height();
于 2013-07-19T21:50:12.530 回答
0
$("#button").click(function() {
     $('html, body').animate({
         scrollTop: $("#elementtoScrollToID").offset().top
     }, 2000);
 });

取自http://www.abeautifulsite.net/blog/2010/01/smoothly-scroll-to-an-element-without-a-jquery-plugin/

于 2013-07-19T21:46:58.863 回答