如何加载网页锚定位置没有“抽搐”或“跳跃”

时间:2016-08-03 20:32:16

标签: jquery html asp.net-mvc-5

我正在开发一个MVC网站并注意到一种模式,现在我正在使用锚点。寻找jquery“Smooth Scrolling”似乎不是解决方案,因为我不需要“平滑滚动” - 我需要在URL中指定的锚点立即加载页面而不从顶部开始。我已经查看了最基本的jQuery $("#").scroll()函数,我仍然有症状。

当我导航到使用锚点的页面时,例如http://localhost:59334/Applicants/ApplicantBaseContactHistories?page=10&SelectedCampus=CRA#Paging,我看到页面闪烁的时间可能为0.5秒,然后跳转到正确的位置。

是否存在一种技术,无论是通过Controller Action技术还是jQuery技术,页面在锚点位置渲染而不是先在顶部加载然后跳转到锚点?

澄清一下,有两种可能的情况:

  1. 网址
  2. 中定义了一个锚点
  3. NULL案例:网址
  4. 中没有定义锚点

    如果URL中没有锚点,则通常会在顶部加载页面。但是,如果URL中有锚点,那么我需要在该锚点位置呈现页面。

1 个答案:

答案 0 :(得分:1)

您可以使用offest()方法,例如

<div id="aboutUs">
      About us content...
</div>

<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>

<div id="section">
    content...
</div>

和JS

$(function() {
    $(document).scrollTop( $("#section").offset().top);
});

自动从URL获取哈希值

var url = window.location.href;
var hash = url.substring(url.indexOf('#'));