body.scrollTop在严格模式下已弃用。如果处于严格模式,请使用'documentElement.scrollTop';如果处于怪癖模式,请使用'body.scrollTop'。

时间:2014-01-21 20:29:40

标签: javascript jquery deprecated

我收到错误:

body.scrollTop在严格模式下已弃用。如果处于严格模式,请使用'documentElement.scrollTop';如果处于怪癖模式,请使用'body.scrollTop'。

我的代码是:

$(document).ready(function(){

    //Animates Scrolling to anchor
    function scrollToAnchor(aid){
        var divTag = $("div[name='"+ aid +"']");
        $('html,body').animate({scrollTop: divTag.offset().top},'slow');
    }

    //If Checking out as guest, scroll to Shipping Information
    $("#ReadDescription").click(function() {
        scrollToAnchor('longdescreadmore');
    });

});

如何编辑我的代码以使用此documentElement.ScrollTop?

1 个答案:

答案 0 :(得分:15)

Dagg Nabbit给出了解决方案。变化

$('html,body').animate({scrollTop: divTag.offset().top},'slow');

$('html').animate({scrollTop: divTag.offset().top},'slow');

如果您想避免Chrome中的弃用警告。 (Why is body.scrollTop deprecated?

它有效,因为documentElementhtml节点:

$('html')[0] === document.documentElement //-> true
$('body')[0] === document.body            //-> true

但是你的代码现在正在运行(尽管有警告),当Chrome删除“古怪”行为时它会继续工作。如果您想继续支持使用body.scrollTop代表标准模式下滚动视口的浏览器(我认为旧的Chrome和Safari),不应更改您的代码。