Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重写JavaScript平滑滚动_Javascript_Jquery_Html_Scroll_Anchor - Fatal编程技术网

重写JavaScript平滑滚动

重写JavaScript平滑滚动,javascript,jquery,html,scroll,anchor,Javascript,Jquery,Html,Scroll,Anchor,我有这段代码,可以顺利地滚动到页面上的锚定点 $('a[href^="#"]').click(function () { $('html, body').animate({ scrollTop: $('[name="' + $.attr(this, 'href').substr(1) + '"]').offset().top }, 800); return false; }); 只要我想使用平滑滚动功能,它就可以工作。我的问题是,我想链接到一个锚点,而

我有这段代码,可以顺利地滚动到页面上的锚定点

$('a[href^="#"]').click(function () {
    $('html, body').animate({
        scrollTop: $('[name="' + $.attr(this, 'href').substr(1) + '"]').offset().top
    }, 800);

    return false;
});

只要我想使用平滑滚动功能,它就可以工作。我的问题是,我想链接到一个锚点,而不是一个特定链接的平滑滚动。我如何才能做到这一点?

为要平滑滚动的链接添加属性,并设置以下条件。 您还可以进行反转,并为不希望平滑滚动的链接添加属性

$('a[href^=“#“]”)。单击(函数(){
if($.attr(这是“行为”)=“平滑”){
$('html,body')。设置动画({
scrollTop:$('[name=“'+$.attr(this,'href').substr(1)+'“]')).offset().top
}, 800);
}否则{
$('html,body').scrollTop($('[name=“'+$.attr(this,'href').substr(1)+''']')).offset().top);
}
返回false;
});
。第1节{
高度:700px;
背景颜色:粉红色;
}
.第2节{
高度:600px;
背景颜色:黄色;
}

平滑滚动
第一节
点击链接查看“平滑”滚动效果

第二节
这对我不起作用,或者我不确定在哪里分配id。我已将您对“linkId”的引用更改为“anchor”,并尝试了以下操作:。滚动到锚点仍然是平滑的。@Robby您是否将html或body标记上的scroll behavior css属性设置为平滑?我将jquery包含在html末尾加载的外部.js文件中。