Javascript 平滑滚动不需要';I don’我不能和一个朋友一起工作。身份证

Javascript 平滑滚动不需要';I don’我不能和一个朋友一起工作。身份证,javascript,jquery,html,Javascript,Jquery,Html,我正在使用一个脚本从这里平滑滚动(URL更改的版本) 它适用于除ID中有的锚以外的所有锚。因此链接到: 1工程 1.1不起作用 你知道怎么解决这个问题吗 代码: 演示:id不应以数字开头。但如果您不想更改id,可以使用以下代码: var $root = $('html, body'); $('a').click(function() { var href = $.attr(this, 'href').replace('#',''); $root.animate({

我正在使用一个脚本从这里平滑滚动(URL更改的版本)

它适用于除ID中有
的锚以外的所有锚。因此链接到:

  • 1工程
  • 1.1不起作用
你知道怎么解决这个问题吗

代码:


演示:

id不应以数字开头。但如果您不想更改id,可以使用以下代码:

var $root = $('html, body'); 
$('a').click(function() {
    var href = $.attr(this, 'href').replace('#','');
    $root.animate({
        scrollTop: $('[id="'+href +'"]').offset().top
    }, 500, function () {
        window.location.hash = href;
    });
    return false;
});

可能重复感谢-这起作用了。HTML5现在确实允许ID以数字开头(尽管HTML4没有)。对于jQuery,要使用任何元字符(例如!“$%”和“()*+,./:;?@^{124}~)作为名称的文字部分,必须使用两个反斜杠进行转义:\\()。在您的情况下,还可以使用:
$(“\\\.1”)
var $root = $('html, body'); 
$('a').click(function() {
    var href = $.attr(this, 'href').replace('#','');
    $root.animate({
        scrollTop: $('[id="'+href +'"]').offset().top
    }, 500, function () {
        window.location.hash = href;
    });
    return false;
});