【问题标题】:Scroll page to top in jquery load function在jquery加载功能中将页面滚动到顶部
【发布时间】:2018-08-23 09:36:51
【问题描述】:

我尝试了什么:

$('#content').load("/education.php?filter_page=kurs&selected_kurs_id=" + selectedKursId + "&selected_category_id=" + selectedCategoryId  + "&kursId=" + positionKurs, function(){
     $(this).scrollTop(0);

});

内容加载后如何向上滚动页面?

【问题讨论】:

  • 你试过$('#content').scrollTop(0);吗?
  • @31piy 是的,也不工作

标签: javascript jquery


【解决方案1】:

$(document).ready(function(){
    $('html, body').animate({scrollTop:0}, 'slow');
});
.wrapper{
  height: 1000px;
  border: 1px solid #ccc;
  padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper"><h3>Header</h3>

【讨论】:

【解决方案2】:

你真的需要使用 jQuery(例如制作动画)吗?

如果你这样做,请尝试:

$('html,body').scrollTop(0);

$('html, body').animate({ scrollTop: 0 }, 'fast');

如果你想要一个小动画而不是快速到顶部。

另一方面,如果您不需要 jQuery,只需使用 Javascript

window.scrollTo(x-coord, y-coord); e.g. window.scrollTo(0, 0)

参数:

x-coord 是沿水平轴的像素。

y-coord 是沿垂直轴的像素。

【讨论】:

  • 看看这篇文章:forum.jquery.com/topic/…。似乎滚动到顶部是默认行为。所以你可能不需要加载方法中的附加函数。
  • 你也可以试试$(document).scrollTop(0);
【解决方案3】:

根据我的经验,您需要在加载后延迟滚动,否则它不会执行任何操作。 试试这个:

$('#content').load("/education.php?filter_page=kurs&selected_kurs_id=" + selectedKursId + "&selected_category_id=" + selectedCategoryId  + "&kursId=" + positionKurs, function(){
     settimeout(function()
     {
         $('#content').scrollTop(0);
     }, 100);

});

【讨论】:

  • 尝试设置更大的超时时间,比如 1000
【解决方案4】:

尝试与您发布的相同的 .load:

$('#content').load("/education.php?filter_page=kurs&selected_kurs_id=" + selectedKursId + "&selected_category_id=" + selectedCategoryId  + "&kursId=" + positionKurs);

但是

education.php里面添加:

<script>
    $("html, body").animate({ scrollTop: 0 }, "slow");
</script>

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签