如何以编程方式滚动到页面中的位置以显示所需内容(而不是显示页面顶部)

时间:2010-11-03 14:06:18

标签: html asp.net-mvc

我在某个网站(,如StackOverflow,雅虎,美国国土安全部,...... )上看到一个与链接关联的单词,单击该链接时,不仅会加载页面,还会加载页面, ,在与单词相关的包含开始的确切位置显示该页面。

如何使用ASP.NET MVC获得该功能? (顺便说一下,我需要javascript吗?)

感谢您的帮助

7 个答案:

答案 0 :(得分:5)

<a href="#jumpHere">Go to the other content</a>
<a name="jumpHere">Some content</a>

此外,网址可以包含/yourpage.html#jumpHere或变量/yourpage.html?var1=foo&var2=bar#jumpHere

由于我们讨论的是哈希(#),它通常用于跳转到页面的特定部分。因此,它不会重新加载整个页面。这对于仅使用AJAX从一个视图移动到另一个视图的Web应用程序非常有用。为了使每个视图都可收藏,JavaScript使用location.hash“保存”状态(您所使用的视图)到URL。下次打开URL时,JavaScript会读取该URL并加载正确的视图。在HTML5中,这被pushState取代。

答案 1 :(得分:4)

1)在页面上找到元素的坐标

2)window.scrollTo(x,y)

答案 2 :(得分:1)

您需要在页面中创建命名锚点。这将产生您正在谈论的结果,几乎就像在页面中创建“书签”一样。不需要javascript。

首先,使用<a>标记创建锚点,并指定name属性(在本例中为section1):

<a name="section1"></a>

然后,要从同一页面链接到该锚点,只需使用以下内容:

<a href="#section1">Go to Section 1</a>

如果您要从其他网页链接到该锚点(在本例中为mypage.html),请在网址末尾添加#section1

<a href="mypage.html#section1">Go to Section 1 in MyPage.html</a>

有关详细信息,请参阅here

答案 3 :(得分:1)

它被称为锚标记。

将其放在HTML中。

<a name="name"></a>

如果您拨打此网址,则会跳转到该位置。

html-file.html#name

请参阅:http://www.w3schools.com/tags/tag_a.asp

答案 4 :(得分:1)

您可以使用命名锚点使用HTML执行此操作,而无需使用javascript。 here is a link explaining this

答案 5 :(得分:1)

使用不同的html元素的id标签非常简单 例如: - 一个div元素,如果它有“页脚”作为其ID并放在页面的底部,那么,http://url-address-to-thatpage.html #footer 将加载页面并滚动它页脚。 (在页面url后面添加“#idoftheelement”) 也可以使用javascript加载和滚动页面。

答案 6 :(得分:1)

另一种方法是使用“id”属性,如果它不是你想要书签的锚标签。例如:

<div id="bookmark1">Content...</div>

然后,您可以使用这样的锚标记链接到它:

<a href="#bookmark1">Go to content</a>

或者通过将#bookmark1附加到

链接到页面上的那个位置
http://yourwebsite.com/page#bookmark1