scrollTop不可写,总是为零。 scrollHeight总是相同的数字

时间:2014-03-14 23:50:42

标签: javascript jquery scrolltop

            <script type="text/template" id="gameroom_template">
            <input id="chatedit" type="text" />
            <input id="chatsend" type="button" value="send.chat" /> 
            <input id="chatleave" type="button" value="Leave Room" /></br>
            <div id="chatroll" style="font-size: 20px;width: 500px; height: 100px; overflow-y: scroll; border: 1px solid black;">
            </div></br>
            <canvas id="gameboard" width="500" height="500" style=""></canvas>
            </script>


            jQuery("#chatedit").val('');
            var scrolltop = document.getElementById("chatroll").scrollTop;
            var scrollheight = document.getElementById("chatroll").scrollHeight;
            console.log(scrolltop);
            console.log(scrollheight);

我正在使用backbone.js加载模板。我看到它并且可以与它交互但是我尝试将scrollTop设置为零以外的某些值是不起作用的。我正在做的是使用控制台运行代码,然后检查scrollTop的值,它始终返回零。我试过用jQuery和JavaScript方法设置它。有谁知道为什么scrollTop不可写?我注意到我用文本填充div并将滚动条上下移动到各个级别,scrollHeight的值始终为16。

感谢您发帖....

1 个答案:

答案 0 :(得分:1)

我不确定你想获得什么价值。你想要获得身体的滚动位置吗?与chatedit的身体相关的位置?

要获取正文滚动位置,您可以使用:

document.body.scrollTop

要获得chatedit元素的位置,我建议使用jQuery:

$('#chatedit').offset().top

如果你想看看它相对于视口的位置,你会合并这两个:

$('#chatedit').offset().top - document.body.scrollTop