我创建了一个 HTML 页面,其中包含许多带有如下标题的表格:Content、Main_Page、Document、Expenses 等。
我想为页面顶部创建一个链接。当我单击该链接时,它应该转到特定部分。所以我使用下面的代码来映射内容。但这对我不起作用。
<a href="#Content">Content Section</a>
我创建了一个 HTML 页面,其中包含许多带有如下标题的表格:Content、Main_Page、Document、Expenses 等。
我想为页面顶部创建一个链接。当我单击该链接时,它应该转到特定部分。所以我使用下面的代码来映射内容。但这对我不起作用。
<a href="#Content">Content Section</a>
您需要为链接创建一个锚点。这样做的现代方法是给适当的元素一个id="Content"
属性。这样做的旧方法是使用<a name="Content"></a>
.
将要“跳转”的元素指定为明确的 ID,如下所示:
<p id="idOfTag">Your content goes here</p>
然后在页面顶部的链接中,使其引用该元素的 id(注意#
):
<a href="#idOfTag">Jump</a>
具有多个链接的完整示例:
<ul>
<li><a href="#contentParagraph">Content</a></li>
<li><a href="#mainPageParagraph">Main page</a></li>
<li><a href="#documentParagraph">Document</a></li>
<li><a href="#expensesParagraph">Expenses</a></li>
</ul>
<p id="contentParagraph">
<h4>Content</h4>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
<p id="mainPageParagraph">
<h4>Main page</h4>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
<p id="documentParagraph">
<h4>Document</h4>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
<p id="expensesParagraph">
<h4>Expenses</h4>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
您可以使用标签的name
属性anchor
来实现这一点。
假设你有一个div
带 idcontent
<div id="content">This is my div</div>
接下来确保您有一个与 的属性相同的anchor
标签name
id
div
content
<a href="#" name="content">Click to go to the top</a>
向下滚动以查看链接
另一种方法是
<div id="content">My div</div>
那么你的锚标签的href应该是#content
<a href="#content">Click to go to top</a>
看起来这个问题已经得到解答,但是如果你想在过渡到这些元素时使用滚动效果,这里有一点 JS 片段。$(函数(){
function filterPath(string) {
return string
.replace(/^\//,'')
.replace(/(index|default).[a-zA-Z]{3,4}$/,'')
.replace(/\/$/,'');
}
var locationPath = filterPath(location.pathname);
var scrollElem = scrollableElement('html', 'body');
// Any links with hash tags in them (can't do ^= because of fully qualified URL potential)
$('a[href*=#]').each(function() {
// Ensure it's a same-page link
var thisPath = filterPath(this.pathname) || locationPath;
if ( locationPath == thisPath
&& (location.hostname == this.hostname || !this.hostname)
&& this.hash.replace(/#/,'') ) {
// Ensure target exists
var $target = $(this.hash), target = this.hash;
if (target) {
// Find location of target
var targetOffset = $target.offset().top;
$(this).click(function(event) {
// Prevent jump-down
event.preventDefault();
// Animate to target
$(scrollElem).animate({scrollTop: targetOffset}, 2000, function() {
// Set hash in URL after animation successful
location.hash = target;
});
});
}
}
});
// Use the first element that is "scrollable" (cross-browser fix?)
function scrollableElement(els) {
for (var i = 0, argLength = arguments.length; i <argLength; i++) {
var el = arguments[i],
$scrollElement = $(el);
if ($scrollElement.scrollTop()> 0) {
return el;
} else {
$scrollElement.scrollTop(1);
var isScrollable = $scrollElement.scrollTop()> 0;
$scrollElement.scrollTop(0);
if (isScrollable) {
return el;
}
}
}
return [];
}
});