[英]How can I make sure that my variable does not change inside the setInterval
I want to change the scrollLeft of a div on time, 我想按时更改div的scrollLeft,
let's make it simple : 让我们简单点:
var initialValue = $('#myDiv').scrollLeft();
var x = setInterval(function() {
$('#myDiv').scrollLeft("#some value calculated depending on initialValue")
}, 10)
the problem is the initialValue changes over time, the same problem remains when i put it inside the setInterval. 问题是initialValue随时间变化,当我将其放在setInterval中时,仍然存在相同的问题。 How can I make sure that my initialValue variable does not change inside the setInterval ? 我如何确保我的initialValue变量在setInterval内部不变?
Just use the scrollWidth property directly thus: 只需直接使用scrollWidth属性即可:
Note: if you want to start at a particular scroll point, simply set el.scrollWidth
to that starting value 注意:如果el.scrollWidth
特定的滚动点开始,只需将el.scrollWidth
设置el.scrollWidth
开始值
var el = document.querySelector('#myDiv'); var step = (el.scrollWidth - el.scrollLeft)/10; var x = setInterval(function() { el.scrollLeft += step; if(el.scrollLeft >= el.scrollWidth - el.clientWidth) clearInterval(x); }, 100);
#myDiv { border: 1px solid black; width: 250px; margin-bottom: 12px; overflow-x: scroll; }
<div id="myDiv"> ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.