我创建了一个简单的html文件,其中包含可以单击的锚链接,可以平滑地滚动到页面的各个部分(标签)。问题是卷轴根本不光滑! 我在youtube上观看了一个教程,其中使用的代码是(这里的代码我适合我的项目,但方式是一样的):
function goto(numsection){
var section = $('#section'+numsection);
var offset = section.offset().top;
$(document).scrollTop(offset);
$(section).slide('slow');
}
单击锚点时,页面向下滚动到相应的部分,但转换是立即的。在JavaScript控制台中出现了以下错误:
Uncaught TypeError: undefined is not a function
我不明白,在教程中工作得很好。
PS:我想尽可能使用slide()
功能,而不是slideToggle()
或类似功能。
答案 0 :(得分:0)
我猜你没看过那个视频
在所述视频中,您发布的代码从未实现平滑滚动,只是突然跳转
我不知道你为什么只想使用slide()
而只是。我不熟悉slide()
,我知道slideUp()
和slideDown()
,但这些用于其他目的。
但是,这是我喜欢处理滚动(或查看jsfiddle)的方式:
$(".link").on('click', function(e)
{
$(".link").each(function()
{
$(this).removeClass('selected');
});
$(this).addClass('selected');
var scrollSpeed = 2000;
var scrollTop = $(window).scrollTop() - 50;
var id = $(this).attr('data-scroll-to');
var goTo = $('#s'+ id).offset().top;
e.preventDefault();
$("html, body").stop().animate({ scrollTop: goTo }, scrollSpeed);
});