- >请转到这个问题同步两个div滚动不顺畅iOS中
我想同步两个div的滚动条,这是编辑的部分如何我这样做
var div1 = document.getElementById('element1'),
div2 = document.getElementById('element2');
div1.addEventListener('touchmove', scrolled, false);
div2.addEventListener('touchmove', scrolled, false);
function getscrollTop(node) {
return node.pageYOffset || node.scrollTop;
}
function scrolled() {
var node = this, scrollTop = getscrollTop(node);
var percentage = scrollTop/(node.scrollHeight - node.clientHeight);
var other = document.getElementById({
"element1": "element2",
"element2": "element1"
}[node.id]);
other.scrollTop = percentage * (other.scrollHeight - other.clientHeight);
};
Fiddle - >使用scroll
改为touchmove
但问题是它在低端设备中闪烁,并希望在事件低端设备中使其平滑。
编辑
我用下面的代码来平滑滚动
var children = document.querySelectorAll('.scrolldiv');
var getscrollTop = function(node) {
return node.pageYOffset || node.scrollTop;
}, toInt = function(n) {
return Math.round(Number(n));
};
window.setInterval(function() {
var scrollTop = getscrollTop(children[0]);
var percentage = scrollTop/(children[0].scrollHeight - children[0].clientHeight);
var oscrollTop = percentage * (children[1].scrollHeight - children[1].clientHeight);
// console.log(1);
children[1].scrollTop = toInt(oscrollTop);
}, 2);
设置第二个div时的滚动它催人泪下,在急拉它在桌面浏览器,但在iOS的浏览器,更顺畅一旦滚动完成,感觉设置scrollTop而不是滚动。
也许这会帮助你http://stackoverflow.com/questions/17722497/scroll-smoothly-to-specific-element-on-page – lordkain
我注意到的一件事是在第17行,你正在调用一个函数“getscrollTop (节点)“,你已经有了一个变量scrollTop。此外,你声明“oscrollTop”作为变量,然后直接将它分配给函数最后的一个对象......直接将其分配给对象。如果您担心低端设备的性能,代码优化非常重要。 – Michael
@迈克尔感谢:) – Exception