我在 stackoverflow 上尝试了其他用户的一系列解决方案,但我无法让任何工作。任何人都可以告诉我如何动画滚动到此页面上的锚点。任何帮助将不胜感激!
(抱歉,我是为网站编写代码的新手,是的,我正在使用 weebly,它可能很糟糕,但它必须这样做。我能够上传 javascript 文件并通过 CSS 和 HTML 链接到它们)
那个jsfiddle呢?
它滚动到特定的 ID !
function scrollToAnchor(aid){
var aTag = $("a[name='"+ aid +"']");
$('html,body').animate({scrollTop: aTag.offset().top},'slow');
}
$("#link").click(function() {
scrollToAnchor('id3');
});
尝试这个:
function ScrollTo () {
$('a').click(function(){
$('html, body').animate({
scrollTop: $( $.attr(this, 'href') ).offset().top
}, 500);
return false;
});
}
并将您的链接格式化如下:
<a href="#aboutUs" onClick="ScrollTo()">About Us</a>
如果要制作动画/平滑滚动,可以使用:
var anchor = $('a[name=Photoshop]').offset().top
$(document.body).animate({
scrollTop: var
}, 2000);
如果您只想快速滚动,可以使用var anchor = $('a[name=Photoshop]').offset().top
然后$(document.body).scrollTop(anchor)
我也遇到了麻烦,我使用的最好的教程是 http://www.learningjquery.com/2007/10/improved-animated-scrolling-script-for-same-page-links 确保你的锚链接是在标签内
<a id="work></a>
然后使用哈希标签链接到它们
<a href="#work"></a>
我有一个对我来说效果很好的功能,它会自动为滚动设置动画,点击锚标签;
$("a").click(function(event){
if(event.target.href.indexOf("#")!=-1){
var arrhash=event.target.href.split("#");
$('html, body').animate(
{ scrollTop: $('a[name=' + arrhash[1] + ']').offset().top },
500, // this is the animation time
function (){ return false; } // what to do after the animation
);
}
});
任何时候你有跳转到某个地方 - 它都会被动画化。此外,如果 javascript 不工作,它会优雅地退回到标准跳转。
我无法让 Abhishek Umrao 的代码在顶部工作,所以我根据他们的想法得到了这个工作。
其他建议的答案允许滚动动画以获得精确的链接。JJ Shaw 的回答不起作用,而且它会触发所有链接的事件,即使是那些不指向锚点的链接。对于所有像我一样想要为所有指向锚点的链接滚动动画的人来说,这里是一个正常工作的解决方案。
$('a[href^="#"]').on('click', function(event) {
var anchor= $(this.getAttribute('href'));
if( anchor.length ) {
event.preventDefault();
$('html, body').stop().animate({
scrollTop: anchor.offset().top
}, 500);
}
});