diff --git a/server/public/assets/js/chat.js b/server/public/assets/js/chat.js index 655bff19..39e1b65c 100755 --- a/server/public/assets/js/chat.js +++ b/server/public/assets/js/chat.js @@ -130,7 +130,11 @@ var Chat = { $("#chatall").append("
  • " + time + " " + icon_add + ""+inp.from+" " + inp.channel + "
  • "); var in_text = document.createTextNode(inp.msg); $("#chatall li:last")[0].appendChild(in_text); - document.getElementById("chatall").scrollTop = document.getElementById("chatall").scrollHeight; + if(!userscroll) { + programscroll = true; + document.getElementById("chatall").scrollTop = document.getElementById("chatall").scrollHeight; + programscroll = false; + } }, channelchat: function(data, time_sent, disable_blink) { @@ -172,7 +176,11 @@ var Chat = { $("#chatchannel").append("
  • " + time + " " + icon_add + ""+data.from+"
  • "); var in_text = document.createTextNode(data.msg); $("#chatchannel li:last")[0].appendChild(in_text); - document.getElementById("chatchannel").scrollTop = document.getElementById("chatchannel").scrollHeight; + if(!userscroll) { + programscroll = true; + document.getElementById("chatchannel").scrollTop = document.getElementById("chatchannel").scrollHeight; + programscroll = false; + } }, chat_blink: function() { diff --git a/server/public/assets/js/listeners.js b/server/public/assets/js/listeners.js index b185f87a..3b6529d3 100755 --- a/server/public/assets/js/listeners.js +++ b/server/public/assets/js/listeners.js @@ -14,6 +14,8 @@ var end_programmatically = false; var music = 0; var timed_remove_check; var slider_type = "horizontal"; +var programscroll = false; +var userscroll = false; var gotten_np = false; var frontpage = 1; var empty_clear = false; @@ -443,7 +445,7 @@ function init(){ } } } - + channel_listeners(true); $.contextMenu({ selector: '.playlist-element', reposition: true, @@ -780,8 +782,10 @@ function setup_chat_listener(){ for(var i = 0; i < data.length; i++) { if(msg.all) { Chat.allchat(data[i], data[i].createdAt, true); + document.getElementById("chatall").scrollTop = document.getElementById("chatall").scrollHeight; } else { Chat.channelchat(data[i], data[i].createdAt, true); + document.getElementById("chatchannel").scrollTop = document.getElementById("chatchannel").scrollHeight; } } }); @@ -1542,8 +1546,47 @@ $(document).on("click", ".chat-link", function(){ } unseen = false; $("#favicon").attr("href", "/assets/images/favicon.png"); + + scrollChat(); }); +$(document).on("click", ".chat-tab-li", function() { + scrollChat(); +}); + +function channel_listeners(on) { + if(on) { + $("#chatchannel").scroll(function(e) { + if(!programscroll) { + userscroll = true; + if($("#chatchannel").scrollTop() + $("#chatchannel").innerHeight() >= $("#chatchannel")[0].scrollHeight) { + userscroll = false; + } + } + }); + $("#chatall").scroll(function(e) { + if(!programscroll) { + userscroll = true; + if($("#chatall").scrollTop() + $("#chatall").innerHeight() >= $("#chatall")[0].scrollHeight) { + userscroll = false; + } + } + }) + } else { + $("#chatchannel").off("scroll"); + $("#chatall").off("scroll"); + } +} + +function scrollChat() { + var current = $(".chat-tab.active").attr("href"); + if(current == "#channelchat") { + $('#chatchannel').scrollTop($('#chatchannel')[0].scrollHeight); + } else if(current == "#all_chat") { + $('#chatall').scrollTop($('#chatall')[0].scrollHeight); + } +} + function searchTimeout(event) { search_input = $(".search_input").val(); @@ -2063,7 +2106,7 @@ function onepage_load(){ document.getElementById("volume-button").removeEventListener("click", Playercontrols.mute_video); document.getElementById("playpause").removeEventListener("click", Playercontrols.play_pause); document.getElementById("fullscreen").removeEventListener("click", Playercontrols.fullscreen); - + channel_listeners(false); if(Helper.mobilecheck() || user_auth_avoid) { video_id = ""; song_title = "";