Jquery 如何在单击其他页面的链接后平滑滚动到id
假设我在页面中有一个链接Jquery 如何在单击其他页面的链接后平滑滚动到id,jquery,html,css,Jquery,Html,Css,假设我在页面中有一个链接 <a href="https://example.com/#sample"><p>Click Me</a> 单击“单击”按钮可进入href属性中的链接。但由于神的工作方式,它会立即捕捉到该页面中的id 我想做的是,页面不应该立即转到id,而是从页面顶部开始,然后平滑滚动到id 另一方面,当粘性菜单捕捉到id时,它会被菜单重叠(我希望它滚动的主要原因之一) jQuery不是我的强项 谢谢所有能帮忙的人 编辑 我认为我的措辞不恰当。
<a href="https://example.com/#sample"><p>Click Me</a>
单击“单击”按钮可进入href属性中的链接。但由于神的工作方式,它会立即捕捉到该页面中的id
我想做的是,页面不应该立即转到id,而是从页面顶部开始,然后平滑滚动到id
另一方面,当粘性菜单捕捉到id时,它会被菜单重叠(我希望它滚动的主要原因之一)
jQuery不是我的强项
谢谢所有能帮忙的人
编辑
我认为我的措辞不恰当。
带有标记的链接位于与其目标不同的页面上。
例如:
主页上有链接
<a href="https://example.com/anotherPage/#sample"><p>Click Me</a>
有一个叫做另一个页面的页面,我想在上面滚动
很抱歉没有把这件事说得足够详细
感谢所有回复的人。您可以使用jQuery的动画功能 请参见w3学校的示例:
您可以使用jQuery的动画功能 请参见w3学校的示例:
使用jQuery很容易,而且只需要几行 使用
$('a[href*=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
使现代化
如果要平滑滚动到新页面上的某个元素,请在该页面上包含以下代码:
它检查URL中是否有散列,如果有,则平滑滚动到具有相应id
的元素
注意1:您可以通过更改500
参数来改变速度。这是以毫秒为单位的动画时间
注2:您还可以在500
之后添加另一个参数,这是一种缓和类型。默认情况下,它是swing
(类似于CSS的ease-in-out
),但您可以将其更改为linear
,使用jQuery很简单,只需几行
使用$('a[href*=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
使现代化
如果要平滑滚动到新页面上的某个元素,请在该页面上包含以下代码:
它检查URL中是否有散列,如果有,则平滑滚动到具有相应id
的元素
注意1:您可以通过更改500
参数来改变速度。这是以毫秒为单位的动画时间
注2:您还可以在500
之后添加另一个参数,这是一种缓和类型。默认情况下,它是swing
(类似于CSS的ease-in-out
),但您可以将其更改为linear
我总是将此项用于外部链接:
这将滚动到带有id的锚#
我总是将此链接用于外部链接:
这将滚动到带有id的锚#
css转换会有帮助css转换会有帮助你有没有机会看到我上面的编辑?谢谢。我已经更新了我的答案。希望这对你有帮助。你有机会看到我上面的编辑吗?谢谢。我已经更新了我的答案。希望这对你有帮助。你有机会看到我上面的编辑吗?谢谢。你能看到我上面的编辑吗?谢谢。你能看到我上面的编辑吗?谢谢。你好,我正在做锚链接到另一个网页与顺利滚动与此代码。但我有个问题。我在一个页面上有2个或更多锚定区域。当我来到另一个页面时并没有问题,但当我点击同一页面上另一个区域的锚定链接时,它并没有平滑滚动。为什么?@ZowiEvangeStany你能看到我上面的编辑吗?谢谢。你好,我正在做锚链接到另一个网页与顺利滚动与此代码。但我有个问题。我在一个页面上有2个或更多锚定区域。当我来到另一个页面时并没有问题,但当我点击同一页面上另一个区域的锚定链接时,它并没有平滑滚动。为什么?@佐维文吉斯特
$(document).ready(function(){
// Add smooth scrolling to all links
$("a").on('click', function(event) {
// Make sure this.hash has a value before overriding default behavior
if (this.hash !== "") {
// Prevent default anchor click behavior
event.preventDefault();
// Store hash
var hash = this.hash;
// Using jQuery's animate() method to add smooth page scroll
// The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area
$('html, body').animate({
scrollTop: $(hash).offset().top
}, 800, function(){
// Add hash (#) to URL when done scrolling (default click behavior)
window.location.hash = hash;
});
} // End if
});
});
$(document).ready(function() {
$('a[href*=\\#]').on('click', function(e){
e.preventDefault();
$('html, body').animate({
scrollTop : $(this.hash).offset().top
}, 500);
});
});
$(document).ready(function() {
if (window.location.hash) {
var hash = window.location.hash;
$('html, body').animate({
scrollTop : $(hash).offset().top
}, 500);
};
});
$(document).on("ready", function () {
var urlHash = window.location.href.split("#")[1];
$('html,body').animate({
scrollTop: $('.' + urlHash + ', #' + urlHash +',[name='+urlHash+']').first().offset().top -100
}, 1000);
});