我基本上是想在iOS上完成这项工作:http://jsfiddle.net/xtyus/1/
滚动应该会导致div堆叠在顶部。
$(window).scroll(function(){
/* get the current scroll position */
var st = $(window).scrollTop();
/* change classes based on section positions */
if (st >= d1orgtop) {
d1.addClass('latched');
} else {
d1.removeClass('latched');
}
if (st >= d2orgtop) {
d2.addClass('latched');
} else {
d2.removeClass('latched');
}
if (st >= d3orgtop) {
d3.addClass('latched');
} else {
d3.removeClass('latched');
}
if (st >= d4orgtop) {
d4.addClass('latched');
} else {
d4.removeClass('latched');
}
});
问题是在iOS上,DOM操作在滚动事件期间被冻结(根据iOS Javascript DOM "Freezing?")。这意味着在用户停止滚动之后才会将位置设置为固定(通过添加“锁定”类)。这会在iOS上导致不必要的行为。 div基本上从顶部滚动,然后一旦添加了锁定类,它就会跳回。
这个问题有一个很好的解决方法吗?