默认情况下,当您有这样的片段链接时:
<a href="/some-url#some-fragment">some text</a>
浏览器只是立即向下滚动到该片段。我如何对其进行编程以使用标准 JS 顺利移动到该片段?
这是一个例子:
示例(要查看工作示例,只需单击 3 个圆圈内的 3 个箭头并观看平滑的动画滚动)
默认情况下,当您有这样的片段链接时:
<a href="/some-url#some-fragment">some text</a>
浏览器只是立即向下滚动到该片段。我如何对其进行编程以使用标准 JS 顺利移动到该片段?
这是一个例子:
示例(要查看工作示例,只需单击 3 个圆圈内的 3 个箭头并观看平滑的动画滚动)
好的,我想我找到了答案,在这里发布以帮助有类似疑问的其他人:
<html>
<head>
<script type="text/javascript">
var singleton = {};
var timeout = singleton;
window.onscroll = windowScroll;
function windowScroll ()
{
var toTop = document.getElementById('toTop');
toTop.style.display = ((window.scrollY > 0) ? "block" : "none");
}
function scrollStep ()
{
var y1 = window.scrollY - 1000;
window.scrollTo(0, y1);
if (y1 > 0)
{
timeout = window.setTimeout(scrollStep, 100);
}
else if (timeout != singleton)
{
window.clearTimeout(timeout);
}
}
</script>
<style type="text/css">
#toTop {
display: block;
position: fixed;
bottom: 20px;
right: 20px;
font-size: 48px;
}
#toTop {
-moz-transition: all 0.5s ease 0s;
-webkit-transition: all 0.5s ease 0s;
-o-transition: all 0.5s ease 0s;
transition: all 0.5s ease 0s;
opacity: 0.5;
display: none;
cursor: pointer;
}
#toTop:hover {
opacity: 1;
}
</style>
</head>
<body>
<p id="top">your text here</p>
<a href="#top" onclick="scrollStep(); return false" id="toTop"
><img src="images/go-to-top.png" alt="Go to top" title="Go to top"></a>
</body>
</html>
那么你应该尝试这样的事情
$('html,body').animate({
scrollTop:$("#ctl00_ctl00_ContentPlaceHolder1_Conten
tPlaceHolder1_txtcomment").offset().top
},'slow');
其中*#ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder1_txtcomment*是您要移动或滚动的 id
另一种方法是将它放在一个函数中
function scrollme() {
$('html,body').animate({
scrollTop:$("#ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder1_txtcomment").offset().top
},'slow');
} <a onclick="javascript:scrollme();">some text</a>
我希望这能帮到您。
问候..:)
[更新]
URI 散列是使具有动态内容的 JavaScript/AJAX 页面可添加书签的好方法。它可以以类似于查询字符串的方式使用,但更改不会导致新的页面请求。这允许您将数据存储在 URI 中,这些数据可以通过 JavaScript 读取和更改,而无需重新加载页面。
对于初学者来说,URI 位置哈希是 URI 中 # 号之后的所有内容:
http://domain.com/page.html#i-am-a-hash附注:URI 哈希不会传输回服务器,您只能在客户端访问它们。
检查这个博客
http://ole.michelsen.dk/blog/using-uri-hash-instead-of-query-strings/