【问题标题】:jquery scrolls up instead of downjquery向上滚动而不是向下滚动
【发布时间】:2017-01-30 20:17:13
【问题描述】:
<article>
  <aside>
    ...
    <div id="onlineformular">
        ...
    </div>
  </aside>
</article>

article
{
  overflow:auto;
  max-height:77vh;
  width:100%;
  background-color:white;
}

$('article').animate({scrollTop:$('#onlineformular').position().top}, 'slow');  

我只是想向下滚动到 div#onlineformular,但它向上滚动。为什么? (仅显示 sn-ps)

谢谢。

【问题讨论】:

  • 你能提供一个完整的工作示例来说明这个问题吗?
  • 来自许多不同文件的文本过多。我读了很多关于不工作的滚动,我想知道是否有一种解决方案可以简单地使其适用于每种情况。对于这种情况,我还没有找到解决方案。我当然会回答问题。
  • 只有 scrollTop 值似乎是错误的。我怎样才能得到正确的值?

标签: jquery html jquery-animate scrolltop


【解决方案1】:

根据你提供的代码,页面会根据div#onlineformular从页面顶部的位置滚动。

animate 将从当前滚动位置动画滚动到新的滚动位置,该位置由 div#onlineformular 从顶部的位置定义。

【讨论】:

  • 谢谢,但是div#onlineformular 的位置好像不对,所以从div#onlineformular 向上滚动。根据许多互联网问题,在我看来,这种滚动存在一般问题。视口或外部 div 是否存在一般问题?是否有替代 position().top 的方法可以提供正确的值?
  • 检查一下:jsfiddle.net/tv268vwq 点击按钮时页面按预期上下滚动。
  • position().top 您从文章标签的顶部开始计算。它应该是文档$('document').animate({scrollTop:$('#onlineformular').position().top}, 'slow');
  • 抱歉,根本无法滚动。有中间课程吗?
  • $('window').animate({scrollTop:$('#onlineformular').positi‌​on().top}, 'slow');
【解决方案2】:

使用body 选择器代替article

$('body').animate({scrollTop:$('#onlineformular').position().top}, 'slow');
.some_div{
  height: 1000px;
  background: #adadad;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='some_div'></div>
<article>
  <aside>
    ...
    <div id="onlineformular">
        ...
    </div>
    
  </aside>
</article>

【讨论】:

  • 谢谢,但是文章标签是可滚动的,正文是固定的。但我会试试看......不幸的是它现在根本不滚动。
  • @user3756502,对不起,但没有看到整个代码,我无法确定问题所在。甚至可能是CSS 问题。
【解决方案3】:

我用$('#onlineformular').ScrollTo();解决了这个问题

很简单。

【讨论】:

    猜你喜欢
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 2013-08-23
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    相关资源
    最近更新 更多