Fix autoscroll of message list
This commit is contained in:
parent
5d2db7eed0
commit
663d0e7e37
@ -37,6 +37,19 @@ var vm = new Vue({
|
|||||||
return game !== null && game.started === true;
|
return game !== null && game.started === true;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
directives: {
|
||||||
|
autoscroll: {
|
||||||
|
bind: function(element, binding) {
|
||||||
|
var observer = new MutationObserver(scrollToBottom);
|
||||||
|
var config = { childList: true };
|
||||||
|
observer.observe(element, config);
|
||||||
|
|
||||||
|
function scrollToBottom() {
|
||||||
|
element.scrollTop = element.scrollHeight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
drawMyBoard: function(ctx) {
|
drawMyBoard: function(ctx) {
|
||||||
var x = 25, y = MARGIN_TOP;
|
var x = 25, y = MARGIN_TOP;
|
||||||
@ -338,25 +351,18 @@ function start() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function addChatAnnouncement(body) {
|
function addChatAnnouncement(body) {
|
||||||
addMessageItem({
|
vm.messages.push({
|
||||||
body: body
|
body: body
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function addChatMessage(sender, body) {
|
function addChatMessage(sender, body) {
|
||||||
addMessageItem({
|
vm.messages.push({
|
||||||
sender: sender,
|
sender: sender,
|
||||||
body: body
|
body: body
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Auto-scrolls the message list
|
|
||||||
function addMessageItem(messageItem) {
|
|
||||||
vm.messages.push(messageItem);
|
|
||||||
var messageList = document.getElementById('messageList');
|
|
||||||
messageList.scrollTop = messageList.scrollHeight;
|
|
||||||
}
|
|
||||||
|
|
||||||
function doHttpGet(url, callback) {
|
function doHttpGet(url, callback) {
|
||||||
var xhr = new XMLHttpRequest();
|
var xhr = new XMLHttpRequest();
|
||||||
xhr.onreadystatechange = function() {
|
xhr.onreadystatechange = function() {
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="chat column">
|
<div class="chat column">
|
||||||
<div class="header row">Chat</div>
|
<div class="header row">Chat</div>
|
||||||
<div id="messageList" class="body row scroll-y">
|
<div v-autoscroll class="body row scroll-y">
|
||||||
<template v-for="message in messages">
|
<template v-for="message in messages">
|
||||||
<div v-if="message.sender" class="message-item">
|
<div v-if="message.sender" class="message-item">
|
||||||
<strong>{{ message.sender }}</strong> {{ message.body }}
|
<strong>{{ message.sender }}</strong> {{ message.body }}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user