[英]Prevent textarea from automatically scrolling when I change cursor position
[英]How to change the scroll speed when automatically scrolling to a position?
当用户单击此按钮时,我将执行以下操作:
const myDiv = document.getElementsByClassName('someClass')[0];
myDiv.scrollTop = myDiv.scrollHeight;
但是它跳得太快了,用户需要花费一些时间来重新定向页面。 有什么方法可以更逐步地滚动到新位置(没有jQuery)?
我不记得我是从哪里找到这个功能的,但是它起作用了:)
function scrollTo(element, to, duration) {
if (duration <= 0) return;
var difference = to - element.scrollTop;
var perTick = difference / duration * 16;
var turn = element.scrollTop < to;
setTimeout(function () {
element.scrollTop = element.scrollTop + perTick;
if ((turn && element.scrollTop >= to) || (!turn && element.scrollTop <= to)) {
element.scrollTop = to;
return;
}
scrollTo(element, to, duration - 16);
}, 16);
};
const myDiv = document.getElementsByClassName('someClass')[0];
scrollTo(myDiv ,myDiv.scrollHeight,400);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.