javascript / jQuery - 在垂直调整页面大小的同时保持div滚动到底部?

时间:2013-01-20 16:50:58

标签: javascript jquery css scroll

在垂直调整页面大小时,我无法将.content div的滚动固定在底部,即,当用户调整屏幕大小时页脚向上移动时,单词“window”应该是绝对的离开能见度的最后一件事。页脚应将“Just Some Text”字样推入可滚动内容,而“Window”应保持可见并位于footer div之上。然而,现在恰恰相反:当页面调整大小时,footer向上移动,覆盖单词“window”,然后是“the”,然后是“of”等,留下“Just Some Text”可见。就像我之前说的那样,它可以说是“相反的”。

所以我的问题是:在页面大小调整期间如何连续滚动到底部?

这是一个小提琴: http://jsfiddle.net/N672c/2/

为了这个问题,我在这里有一个基本的html结构:

 <header></header>

 <div id="content_id" class="content">
      <div class="container">
         Just<br>
         Some<br>
         Text.<br>

         Try<br>
         resizing<br>
         the<br>
         height<br>
         of<br>
         the<br>
         window
     </div>
 </div>

 <footer></footer>

也有一些CSS:

 header, footer {
     position: fixed;
     left: 0; right: 0;
     height: 100px;
     background: teal;
 }

 header { top: 0 }
 footer { bottom: 0 }

 .content {
     position: fixed;
     top: 100px; bottom: 100px;
     left: 0; right: 0;
     overflow-y: scroll;
  }

 .container {
     padding: 20px;
     position: absolute;
     left: 0;
     right: 0;
     bottom: 0;
 }

还有少量的javascript:

 var $content = $('.content'),
 $container = $('.container'),
 containerHeight = $container.outerHeight();

 $(window).resize(function () {
      $container.css({
         position: $content.innerHeight() > containerHeight ? 'absolute' : 'static'
      });
 }).resize();

2 个答案:

答案 0 :(得分:4)

您可以使用scrollTop方法将滚动条设置为所需位置,该方法采用一个参数,即偏移值。

在这里,您可以向“内容”块添加scrollTop方法,其中包含容器块高度的偏移量,即您希望将其保持为常量的高度。

请将此添加到调整大小功能中。

$content.scrollTop($container.height());

这会让你在调整大小时滚动到最后。

这是一个快速检查http://jsfiddle.net/4LQnW/6/

答案 1 :(得分:2)

在resize方法中,只需添加:

$content.scrollTop($content.height());

这将使$content不断滚动到底部:http://jsfiddle.net/N672c/4/