I’ve tried to autoscroll my div but I wanted to add a checkbox to users can select this event (scroll or not)
I used If statement but doesn’t work, if it is one time checked, always return my function to autoscroll my chat window.
here is my code
const chat_win = document.getElementById('chat-window') const autoscroll = document.getElementById('autoscroll') autoscroll.onchange = function() { checked = autoscroll.checked; console.log(checked); if(checked == true) pageScroll() else return; } function pageScroll() { chat_win.scrollBy(0, 5); scrolldelay = setInterval(pageScroll, 10); }
Advertisement
Answer
// every second white to chat setInterval( function() { let d = document.createElement( "div" ); d.innerText = new Date().toGMTString(); document.getElementById( "chat_window" ).appendChild( d ); }, 1000 ); var chat_window_scroll_interval; document.getElementById( "autoscroll_chbx" ).addEventListener( "change", function() { // this == checkbox if ( this.checked ) { // scroll every 1 second by 40px vertically chat_window_scroll_interval = setInterval( function() { document.getElementById( "chat_window" ).scrollBy( 0, 40 ); }, 1000 ); } else { clearInterval( chat_window_scroll_interval ); } } );
#chat_window { height: 200px; max-height: 200px; width: 200px; overflow-y: auto; }
<div id="chat_window"></div> <input type="checkbox" id="autoscroll_chbx" />