[英]How can I make javascript automatically scroll and make a scroll bar in HTML?
我在使我的網站具有滾動條並使其自動滾動時遇到問題。 這是一個簡單的聊天網站,只是一個簡單的項目。
這是網址: https://chat.jchs.repl.co/
你可以用這個 fork 代碼(你必須先創建一個帳戶): https://replit.com/@jchs/chat#html/index.html
如果您想在發表評論之前查看 index.html 代碼:
<html>
<head>
<title> Chat </title>
<meta name = "charset" charset = "utf-8">
<meta name = "viewport" content = "width=device-width">
<link rel = "stylesheet" type = "text/css" href = "style.css">
<script src = "script.js"></script>
<script src= "socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
</head>
<body onload = "onload()">
<div id = "Main">
<audio id = "Ding" src = "Ding.mp3"> </audio>
<h1 id = "Title"> Online Chat </h1>
<div id = "AccessPort">
<label id = "NameLabel"> Username </label>
<input id = "NameInput" type = "text">
<br><br>
<label id = "IDLabel"> Chatroom </label>
<input id = "IDInput" value = "Room1" type = "text">
<input id = "ConnectButton" class = "Button" type = "submit" value = "Connect" onclick = "Connect()">
</div>
<h2 id = "RoomID"> Chatroom : None </h2>
<div id = "Chat">
<p id = "Message0" class = "Message"> - </p>
<p id = "Message1" class = "Message"> - </p>
<p id = "Message2" class = "Message"> - </p>
<p id = "Message3" class = "Message"> - </p>
<p id = "Message4" class = "Message"> - </p>
<p id = "Message5" class = "Message"> - </p>
<p id = "Message6" class = "Message"> - </p>
<p id = "Message7" class = "Message"> - </p>
<p id = "Message8" class = "Message"> - </p>
<p id = "Message9" class = "Message"> - </p>
<label id = "MessageLabel"> Message </label>
<input id = "ComposedMessage" type = "text">
<input id = "SendMessage" onclick="Send()" value = "Send" class = "Button" type = "submit">
</div>
<br><br>
</div>
<p2>No racism, homophobia, or any -isms or -phobias. No impersonating or trying to be someone else. Use common sense. </p2>
<p id="counter">Users online: <span id="userCount">Loading…</span></p>
<script type="text/javascript" charset="utf-8">
$().ready(function (){
var token = '';
var pinger = setInterval(function (){
$.ajax({
cache: false,
data: {
token: token,
},
timeout: 2500,
type: 'GET',
url: 'pinger.php',
dataType: 'json',
success: function (data, status, jqXHR){
$('#userCount').text(data.userCount);
token = data.token;
}
});
}, 3000);
});
</script>
</body>
</html>
你的聊天有幾個問題。 讓我們嘗試解決:
首先,您有固定數量的消息。 你的聊天 div 必須開始為空,當你收到一條消息時,你將在消息中添加一個新的 p 標簽。 現在,在您發送多條消息后,您會在“document.getElementById("Message"+i)" 句子中收到錯誤消息。
嘗試將輸入放在聊天消息部分之外:
<div id="Chat" style="overflow-y:scroll;height:200px">
<p id="Message0" class="Message" style="color: rgb(48, 48, 48);"></p>
...
<p id="Message9" class="Message" style="color: rgb(48, 48, 48);"></p>
</div>
<label id="MessageLabel"> Message </label>
<input id="ComposedMessage" type="text">
<input id="SendMessage" onclick="Send()" value="Send" class="Button" type="submit">
通過這種方式,您可以將 overflow-y:scroll 樣式添加到您的 Chat div。 你需要為你的聊天設置一些固定的高度。 也許 200px、75%、75vh...取決於您的喜好。
您可以使用以下代碼將 go 打到底部:
var chat = document.getElementById('Chat');
chat.scrollTop = chat.scrollHeight;
你可以看到這個頁面來檢查如何設置滾動條的樣式: https://www.w3schools.com/howto/howto_css_custom_scrollbar.asp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.