Reputation: 315
Here is a <div>
which is scrolled to the bottom as default;
<div id="idname" style="max-height:100px; width: 100px; overflow:auto;">
<p>a<p>
<p>a<p>
<p>a<p>
<p>a<p>
<p>a<p>
</div>
<button id="offon">scrolldown off/on</button>
<script>
function updateScroll(){
var element = document.getElementById("idname");
element.scrollTop = element.scrollHeight;
}
setInterval(updateScroll);
</script>
Below the <div>
is a button. How can I keep the scrolled down function on by default, disable the funtion when clicking the button, and re-able it by clicking it again?
Upvotes: 0
Views: 56
Reputation: 27041
You could try something like this, it will start/stop the Interval:
var scrollEnable = true;
var add;
function start() {
add = setInterval(function() {
var element = document.getElementById("idname");
element.scrollTop = element.scrollHeight;
}, 100);
}
$('#offon').click(function() {
console.log(scrollEnable)
if (scrollEnable) {
clearInterval(add)
} else {
start();
}
scrollEnable = !scrollEnable;
});
start();
Demo
var scrollEnable = true;
var add;
function start() {
add = setInterval(function() {
var element = document.getElementById("idname");
element.scrollTop = element.scrollHeight;
}, 100);
}
$('#offon').click(function() {
console.log(scrollEnable)
if (scrollEnable) {
clearInterval(add)
} else {
start();
}
scrollEnable = !scrollEnable;
});
start();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="idname" style="max-height:100px; width: 100px; overflow:auto;">
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
</div>
<button id="offon">scrolldown off/on</button>
Upvotes: 2