通过滚动调整容器位置
adjusting container position with scrolling
我试图使它使div容器中的一组元素不断出现在Viewport中。我尝试了几种不同的方法,但它们似乎有重新粉刷的问题。
问题:有什么主要的优化来提高性能和消除突出的视觉副作用吗?如果没有,还有其他方法吗?
第一种方法:
$(viewport).scroll(function ()
{
m_grid.css({ 'marginTop': viewport.scrollTop() + 'px' });
})
这个会引起微小的震动效果,对用户来说很明显。
第二种方法:
- 在内容的下面和上面放置一个div,用一些基本的数学方法收缩和扩展它们,以填充可滚动容器的未使用空间。
这种方法的问题是,它会导致内容的边缘闪烁最有可能是由于不断调整大小。
第三种方法:
- 在原始滚动条的位置直接放置一个模仿滚动行为的div,然后简单地绑定滚动事件,将它们转发到实际的容器。
这个的问题是,由于实际执行滚动的div是假的,因此鼠标滚轮将无法使用,因为当鼠标悬停在viewport中的元素上时,它将没有焦点。
对改进或替代方法有什么想法吗?它必须以性能为中心
你不需要JavaScript,你可以用CSS。例如:
#viewport {
position: relative;
}
#m_grid {
position: fixed;
top: 0px;
}
David Walsh有一个position: fixed
的演示页面。
相关文章:
- jquery试图按名称获取按钮位置
- 我可以获得相对于被点击元素的确切点击位置吗
- 谷歌地图固定位置覆盖
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 循环比赛位置算法
- es6 相当于下划线查找位置
- jQuery循环在特定位置暂停
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 自定义函数中的光标位置
- 安卓平台上的QWebView HTML5地理位置
- DIV并排,位置不正确
- 使用jQuery更改元素的顶部位置
- 在谷歌地图上绘制位置数据库
- 跟踪jqplot垂直折线图的鼠标位置
- 设置画布渲染器的x和y位置
- 固定位置菜单时滚动,直到它击中一个相对容器的底部
- 根据页面的位置突出显示文本中的字符
- 传单缩放控制位置错误
- 如何将返回的值应用于多个不同位置的多个选择器
- Possibile使用Manifest v2下的HTML5地理位置API将lat/long转换为国家/地区