我已经分别弄清楚了“动态负载”和“两个 div 的同步滚动”,但现在我想将它们结合起来。简单的 HTML:
<div id="div1">
<div class="div1_cell"> One line </div>
<div class="div1_cell"> One line </div>
...
</div>
<div id="div2" onscroll=SyncScroll(this)>
<div class="div2_cell"> One line </div>
<div class="div2_cell"> One line </div>
...
</div>
同步滚动适用于此:
function SyncScroll(div) {
var div1 = document.getElementById('div1');
div1.scrollTop = div.scrollTop;
}
我正在尝试使用以下方法动态加载页面:
$(document).ready(function () {
size_div1 = $("#div1 .div1_cell").size();
size_div2 = $("#div2 .div2_cell").size();
x=5;
$('#div1 .div1_cell:lt('+x+')').show();
$('#div2 .div2_cell:lt('+x+')').show();
div2 = document.getElementById('div2')
div2.onscroll = function() {
if(div2.scrollTop + div2.clientHeight == div2.scrollHeight) {
x=(x+5 <= size_div1) ? x+5 : size_div1;
$('#div1 .div1_cell:lt('+x+')').show();
x=(x+5 <= size_div2) ? x+5 : size_div2;
$('#div2 .div2_cell:lt('+x+')').show();
}
}
});
它确实显示了两个 div 的初始大小(此处为 5),并且确实在滚动时加载了更多数据,但我有两个问题:
- 它一次加载其余数据,而不是每次我触底时逐渐增加 5 个,
- syncscroll 停止工作,动态加载仅适用于 div2,而 div1 被冻结
这是我第一次尝试大型项目所需的 Javascript,我敢肯定它看起来很乱。我会很感激你的帮助。谢谢!