を設定した後、私はいくつかの簡単なマークアップを持っている...scrollTopスプライト値の変更はすぐに
垂直フレキシボックスとしてスタイル<div class="container">
<div id="conversation">...</div>
<div class="keyboard">...</div>
</div>
...
.container {
margin: 1em 1em 0;
max-width: 30em;
margin-left: auto;
margin-right: auto;
display: flex;
flex-direction: column;
justify-content: space-between;
height: 100vh;
}
#conversation {
overflow-y: scroll;
box-sizing: border-box;
margin-bottom: auto;
flex: 1 1 80%;
}
.keyboard {
padding: 2rem;
box-sizing: border-box;
}
そして、私は単純に.conversation
のスクロール位置を移動したいです下にいっぱい:
var scrollConvo = function() {
var convo = document.getElementById('conversation');
console.log('scrollTop', convo.scrollTop); // scrollTop 174
console.log('scrollHeight', convo.scrollHeight); // scrollHeight 426
convo.scrollTop = convo.scrollHeight;
console.log('scrollTop', convo.scrollTop); // scrollTop 252
}
しかし、これは期待どおりに動作しません。スクロール位置は移動しますが、一番下まで移動するわけではありません。 console.log
ステートメントの横にあるコメントのように、値はではなく、になっています。私はその結果の価値について何の説明もしていません。 scrollTop
426はなぜですか?
アップデート1 私は私が何をしたいん作業jsfiddleを作ったが、それが動作する理由私はわからないが、鉱山はしていません:http://jsfiddle.net/khj4903t/48/
ありがとうございました。これは参考になります。しかし、それは私が見ている結果を説明していますか?デフォルトでmax scrollTopに設定されているのであれば、なぜそれが期待通りに機能していないのですか(偶然) – emersonthis
私の場合、スクロール位置は移動しますが、最下部までは移動しません。それはちょっと下に隠れています。私はどのように/理由を理解していません – emersonthis
@emersonthisそれはあなたのフィドルで私のためにうまく動作します。メッセージを追加するときは常に下に移動します。 –