我一直试图用替代固定元素来实现粘性div解决方案。这主要是因为理论上更好的支持系统可以减少桌面浏览器的窗口大小...(即水平滚动兼容性)。
我一直在实现下面的代码,它在firefox中完美运行。然而,在Internet Explorer中,整个脚本滞后,页面变得非常跳跃。由于我覆盖了一堆div,这在表示方面造成了一些混乱。有没有办法加快脚本速度,使其在Internet Explorer和其他未经测试的浏览器中运行良好?
window.onload = (function() {
var oa_sticky = document.getElementsByClassName('sticky_div');
var oia_sticky_offsets_temp = new Array();
for (i = 0; i < oa_sticky.length; i++) {
oia_sticky_offsets_temp.push(new Array(oa_sticky[i], (oa_sticky[i].offsetTop)));
}
var oia_sticky_offsets = oia_sticky_offsets_temp;
stick_div(oia_sticky_offsets);
window.onscroll = function() {
stick_div(oia_sticky_offsets);
}
});
function stick_div(oia_sticky_offsets) {
var doc = document.documentElement;
for (i = 0; i < oia_sticky_offsets.length; i++) {
oia_sticky_offsets[i][0].style.top = (doc.scrollTop + oia_sticky_offsets[i][1]) + "px";
}
}
任何帮助您更快地做出回应的帮助将非常感激。
感谢。