在触摸溢出容器上使用以下代码可以正常工作,除非在快速滚动(快速连续轻弹)期间以及内容仍在从产生的“动量”移动时。在快速动量滚动期间,div 不会显示/隐藏,直到内容变慢/缓和到静止位置。
$('.container').on('scroll', function () {
var yDistance = $(this).scrollTop();
if (yDistance > 300) {
$('#div').hide();
} else {
$('#div').show();
}
});
我尝试了 1ms 超时以在 JS 堆栈中放置一些优先级,结果没有变化。我怀疑所有的渲染都被转移到了动量视觉上,并且任何 JS DOM 操作都被排队了。
有什么方法可以确保 div 的这种简单隐藏/显示在滚动相关渲染中获得优先权?