我想按时更改div的scrollLeft,
让它变得简单:
var initialValue = $('#myDiv').scrollLeft();
var x = setInterval(function() {
$('#myDiv').scrollLeft("#some value calculated depending on initialValue")
}, 10)
问题是initialValue随时间变化,当我将其放在setInterval中时,仍然存在相同的问题。我如何确保我的initialValue变量在setInterval内部不会改变?
答案 0 :(得分:0)
只需直接使用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>