计算具有不同行高的网格中的滚动条高度
我的网格有很多行(例如 1 000 000)。每行的高度可以是唯一的。但大多数行具有相同的高度。因此不可能确定每行的高度并获得总网格高度。
我需要在该网格上实现平滑的垂直滚动,而不仅仅是跳过行,因为行可以高于可见区域。
我的解决方案是:
- 获取行数
- 每行分为10份
- =>滚动条最大值是(行数)*10
- 从滚动位置我得到:
- 第一个可见行 =(滚动位置)/ 10
- 第一个可见行移位 =(滚动位置)% 10
如果所有行具有 +- 相同的高度,则效果很好。如果其中一行的高度为 500 像素,而另一行的高度为 25 像素,则滚动看起来很糟糕。
有人建议如何更好地解决这个问题吗?
I've grid with a lot of rows (e.g. 1 000 000). Height of each row may be unique. But most of rows has same height. So it's not possible to determine height of each row and get total grid height.
I need implement smooth vertical scrolling over this grid, not only jump over row, because row can be higher than visible area.
My solution is:
- get number of rows
- each row is divided into 10 parts
- => scroll bar max value is (number of rows)*10
- from scroll position I get :
- first visible row = (scroll position) / 10
- first visible row shift = (scroll position) % 10
This work fine, if all rows has +- same height. If there is one row with height 500 px and other has 25 px scroll looks awful.
Has anybody suggestion how to better solve this problem?
Grid is here :
http://img560.imageshack.us/img560/7775/scroll.png
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
让滚动以像素为单位:
Let the scroll be in pixel units: