慢慢滚动到特定 div 或 html 页面中的锚点
Slowly scroll to a specific div or anchor in a html page
我有一个 html 页面,我想让它缓慢滚动到特定点或整个页面。我尝试了以下代码但没有任何效果:
<a href="#anchorName"></a>
<script>
function scrollTo(hash)
{
location.hash = "#anchorName";
}
</script>
其次,我尝试滚动到 div,但在这种情况下,我还必须使用 CSS 并设置高度。我正在努力避免这种情况。
如在 Whosebug 过去的问题上所见:
<a href="#myDiv" id="button">button</a>
<script>
$("#button").click(function()
{
$('html, body').animate({
scrollTop: $("#myDiv").offset().top
}, 2000);
});
</script>
而且它根本不起作用。
由于您将 #myDiv
设置为按钮的 href,因此在触发动画之前必须 preventDefault():
$("#button").click(function(e){
e.preventDefault();
$('html, body').animate({
scrollTop: $("#myDiv").offset().top
}, 2000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="myDiv" id="button">button</a>
<div style="height:400px;"></div>
<div id="myDiv">Lorem Ipsum</div>
像这样尝试:
$(document).ready(function(){
$("#button").click(function(e) {
e.preventDefault();
$('html, body').animate({
scrollTop: $($.attr(this, 'href')).offset().top
}, 2000);
});
});
#myDiv {
margin-top: 800px;
height: 50px;
width: 300px;
background: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="#myDiv" id="button">button</a>
<div id="myDiv"></div>
您可以使用 jQuery 按照示例代码对某些组件 ID 进行平滑滚动,例如:
<a class="move_to_div" href="#anchorName"> move div </a>
<div id="anchorName"> </div>
<script>
$(".move_to_div").click(function() {
$('html, body').animate({
scrollTop: $("#anchorName").offset().top
}, 1000);
});
</script>
这只是示例,当单击 'a href link' 时,向下滚动会很平滑(要测试结果,请在 link 和 div 之间添加一些 space,方法是使用css)
希望对您有所帮助。
我有一个 html 页面,我想让它缓慢滚动到特定点或整个页面。我尝试了以下代码但没有任何效果:
<a href="#anchorName"></a>
<script>
function scrollTo(hash)
{
location.hash = "#anchorName";
}
</script>
其次,我尝试滚动到 div,但在这种情况下,我还必须使用 CSS 并设置高度。我正在努力避免这种情况。
如在 Whosebug 过去的问题上所见:
<a href="#myDiv" id="button">button</a>
<script>
$("#button").click(function()
{
$('html, body').animate({
scrollTop: $("#myDiv").offset().top
}, 2000);
});
</script>
而且它根本不起作用。
由于您将 #myDiv
设置为按钮的 href,因此在触发动画之前必须 preventDefault():
$("#button").click(function(e){
e.preventDefault();
$('html, body').animate({
scrollTop: $("#myDiv").offset().top
}, 2000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="myDiv" id="button">button</a>
<div style="height:400px;"></div>
<div id="myDiv">Lorem Ipsum</div>
像这样尝试:
$(document).ready(function(){
$("#button").click(function(e) {
e.preventDefault();
$('html, body').animate({
scrollTop: $($.attr(this, 'href')).offset().top
}, 2000);
});
});
#myDiv {
margin-top: 800px;
height: 50px;
width: 300px;
background: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="#myDiv" id="button">button</a>
<div id="myDiv"></div>
您可以使用 jQuery 按照示例代码对某些组件 ID 进行平滑滚动,例如:
<a class="move_to_div" href="#anchorName"> move div </a>
<div id="anchorName"> </div>
<script>
$(".move_to_div").click(function() {
$('html, body').animate({
scrollTop: $("#anchorName").offset().top
}, 1000);
});
</script>
这只是示例,当单击 'a href link' 时,向下滚动会很平滑(要测试结果,请在 link 和 div 之间添加一些 space,方法是使用css) 希望对您有所帮助。