繁体   English   中英

滚动至固定高度的div

[英]Scroll to anchor within div of set height

我希望有人可以帮助我使用Javascript。 JSFiddle向您显示了我已经走了多远,但距离不远...但是我基本上是在尝试单击导航栏时尝试获取包含的DIV的内容,以使其与“ .news_window”框的顶部对齐。

http://jsfiddle.net/s5sxa0sk/2/

我意识到将scrollTop转到“ this”是不正确的,但是我不知道该如何继续。

任何输入将不胜感激。

HTML:

<ul class="news_archive">
  <li class="active"><a href="#2014_dec">December</a></li>
  <li><a href="#2014_nov">November</a></li>
  <li><a href="#2014_oct">October</a></li>
</ul>

<div class="news_window">
  <div id="dec_2014">
    <p>December Content</p>
  </div>
  <div id="nov_2014">
    <p>November Content</p>
  </div>
  <div id="oct_2014">
    <p>October Content</p>
  </div>
</div>

Javascript:

<script>
 $(".news_archive li").click(function(e){
     e.preventDefault();
     $('.news_window').animate({scrollTop:$(this).position().top}, 'slow');
     $('.news_archive li.active').removeClass('active');
     $(this).addClass('active');
});
</script>

您的主要问题是您使用的是#new_archive链接的顶部位置来使滚动动画,而不是#news_window项的顶部位置。 您需要根据单击的链接找到#news_window元素,然后使用该元素的position()。top。

您还需要在#news_window项周围包装,否则每个元素的position()。top将根据#news_window元素的当前滚动位置而变化。 该包装器将需要position: relative集。

这就是我的意思:

<ul class="news_archive">
    <li class="active">
        <a data-id="dec_2014" href="#">December</a>
    </li>
    <li>
        <a data-id="nov_2014" href="#">November</a>
    </li>
    <li>
        <a data-id="oct_2014" href="#">October</a>
    </li>
</ul>

<div class="news_window">
    <div class="wrapper">
        <div id="dec_2014">
            <p>December Content</p>
        </div>
        <div id="nov_2014">
            <p>November Content</p>
        </div>
        <div id="oct_2014">
            <p>October Content</p>
        </div>
    </div>
</div>

和Javascript:

$('.news_archive li a').click(function(e) {
    e.preventDefault();

    var newsWindowEl = $('#'+$(this).data('id'));

    $('.news_window').animate({
        scrollTop: newsWindowEl.position().top
    }, 'slow');

    $('.news_archive li.active').removeClass('active');
    $(this).parents('li').addClass('active');
 });

这是您的提琴的工作版本: http : //jsfiddle.net/s5sxa0sk/42/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM