2
私は私の質問のためにjsFiddleを準備している:私は、マルチプレイヤーゲームでのチャット用(黄色)div
要素を使用しようとしていますチャットウィンドウとして機能するdiv要素をスクロールする方法を教えてください。
。
残念ながら、div
は、最新の行であるappend()までスクロールしません。
$('#chatBtn').button().click(function(e) {
e.preventDefault();
var str = $('#chatInput').val();
$('#chatInput').val('');
$('#chatDiv').append('<br>' + str);
var h = $('#chatDiv').attr('scrollHeight');
//$('#chatDiv').scrollTop(h);
$('#chatDiv').animate({ // DOES NOT SCROLL TO DIV BOTTOM, WHY?
scrollTop: h
}, 1000);
});
$('#chatInput').on('input', function(e) { // ENABLES/DISABLES BUTTON, WORKS OK
var str = $('#chatInput').val();
$('#chatBtn').button(str.length > 0 ? 'enable' : 'disable');
});
@import url("https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.0/themes/smoothness/jquery-ui.css");
div#chatDiv {
margin: 0 auto;
background-color: yellow;
width: 400px;
height: 100px;
overflow: auto;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.0/jquery-ui.min.js"></script>
<div id="chatDiv"></div>
<p align="center">
<input id="chatInput" type="text" size="40" />
<button id="chatBtn" disabled>Send</button>
</p>
chatInput
に4-5の単語を入力してたびchatBtn
をクリックしてください - あなたは、問題が表示されます。一番下の行が示されていない、chatDiv
-elementを下にスクロールされていません。
残念ながら、 'var h = $( '#chatDiv')。height();'は問題を解決しません。 [my jsFiddle](https://jsfiddle.net/afarber/40wgdL8w/)に4-5行を入力し、毎回 "送信"ボタンをクリックするだけで、divが下にスクロールしないことがわかります。 –
私は自分の答えを更新しました。var h = $( '#chatDiv')を使うことができます。prop( 'scrollHeight');これがあなたの問題を解決することを願っています。 –