Javascript 在尝试获得身体高度时得到NaN

Javascript 在尝试获得身体高度时得到NaN,javascript,jquery,html,Javascript,Jquery,Html,所以我想把百分比向下滚动。如果我向下滚动页面的一半,我会返回50%。现在我试着这样做 var a = $("#container").scrollTop; var b = $("body").scrollHeight - $("body").clientHeight ; var c = a / b ; console.log(c); 还有我的标记 <body style="height: 100%;"> <div id="container" styl

所以我想把百分比向下滚动。如果我向下滚动页面的一半,我会返回50%。现在我试着这样做

var a  =  $("#container").scrollTop;
var b  =  $("body").scrollHeight - $("body").clientHeight ;
var c  =  a / b ;

console.log(c);
还有我的标记

<body  style="height: 100%;">
    <div id="container" style="height: 100%;">
        <!--Bunch of h1s here-->
    </div>
</body>

现在我运行它。在控制台中,我得到
NaN
。。。。即使我向下滚动。。。。有什么想法吗

scrolltop()
是一个函数,您的逻辑有点不正确。试试这个:

$(window).on('scroll', function () {
    var $this = $(this),
        $body = $('body');

    var percent = Math.round($this.scrollTop() / ($body.height() - $this.height()) * 100);

});
演示:

scrolltop()是一个函数,您的逻辑有点不正确。试试这个:

$(window).on('scroll', function () {
    var $this = $(this),
        $body = $('body');

    var percent = Math.round($this.scrollTop() / ($body.height() - $this.height()) * 100);

});

演示:

scrollTop是一个方法,而不是一个属性

<script>
        var a  =  $("#container").scrollTop();
        var b  =  document.body.scrollHeight - document.body.clientHeight ;
        var c  =  a / b ;
        console.log(c);
</script>

var a=$(“#容器”).scrollTop();
var b=document.body.scrollHeight-document.body.clientHeight;
var c=a/b;
控制台日志(c);

尽管我不相信这是您想要的功能。

scrollTop是一种方法而不是属性

<script>
        var a  =  $("#container").scrollTop();
        var b  =  document.body.scrollHeight - document.body.clientHeight ;
        var c  =  a / b ;
        console.log(c);
</script>

var a=$(“#容器”).scrollTop();
var b=document.body.scrollHeight-document.body.clientHeight;
var c=a/b;
控制台日志(c);

虽然我不相信这是您想要的功能。

如果您想使用jquery,它将是这种方式。希望能有帮助

var a  =  $("#container").scrollTop();
var b  =  $('body').prop('scrollHeight') - $('body').prop('clientHeight') ;
var c  =  a / b ;
console.log(c);

这是一个演示:

如果您想使用jquery,它将是这种方式。希望能有帮助

var a  =  $("#container").scrollTop();
var b  =  $('body').prop('scrollHeight') - $('body').prop('clientHeight') ;
var c  =  a / b ;
console.log(c);

这是一个演示:

注意#1
$(“#容器”).scrollTop()
(缺少括号)是否尝试打印出
b
?什么是值?注意#2您在这里调用jQuery对象上的本机JS方法
$(“body”)。scrollHeight
和这里
$(“body”)。clientHeight
。注意#1
$(“#容器”)。scrollTop()
(缺少括号)您是否尝试打印出
b
?什么是值?注意#2您在这里调用jQuery对象上的本机JS方法
$(“body”)。scrollHeight
和这里
$(“body”)。clientHeight
。它抛出
未捕获类型错误:未定义不是第2行上的函数
,不确定它是否准确。在页面底部,它给了我一个提示,它在第2行抛出了
uncaughttypeerror:undefined不是一个函数
,不确定它是否准确。在页面底部,它告诉我这不是应该返回剩余百分比吗?它不是应该返回剩余百分比吗?