2014-02-26 22 views
3

的内容步骤下面给出的图示:公式滚动

enter image description here

查找正比于thumb heightthumb stepcontent step值。

content step是通过垂直位置的像素滚动量。

这里的公式是什么?

回答

3

式用于计算所述拇指高度

var arrowHeight = 25; 
var viewportHeight = 200; 
var contentHeight = 600; 

var viewableRatio = viewportHeight/contentHeight; // 1/3 or 0.333333333n 
var scrollBarArea = viewportHeight - arrowHeight * 2; // 150px 
var thumbHeight = scrollBarArea * viewableRatio; // 50px 

式用于计算卷轴的内容步骤

var scrollTrackSpace = self.contentHeight - self.viewportHeight; // (600 - 200) = 400 
var scrollThumbSpace = self.viewportHeight - self.thumbHeight; // (200 - 50) = 150 
var scrollJump = scrollTrackSpace/scrollThumbSpace; // (400/150) = 2.666666666666667 

最后: -

拇指身高 = 50px;

Thumb Step Down = 1px;

内容向上滚动 = 2.666666666666667px;

如果你跳下1个像素的拇指,那么你的内容应该滚动2.666666666666667像素了。

有关完整的详细信息,请参考,这个线程: - Complete Scrolling Formula

+0

高兴有人挖成这个几乎埋葬我的职位,没有人关注。我离开这个GUI项目一段时间,因为我陷入了这个问题,我找不到讨论这类话题的网站,但是我在过去的一个月里正在做一个webdev,并且我很了解他们的用户界面,希望那之后我又回到兴奋中。谢谢你回答:D ..也许我会在我重新确定我的注意力之后继续这个项目。 – mr5

+0

非常感谢您的赞赏!请让我知道你以后可能需要任何帮助。 – imdadhusen

0

我使用你在VB.net提供的公式试过,但它不工作。拇指停止在滚动条的结尾处。滚动条和可视区域都是490px,内容高度乘以50的内容项(CHAM)的金额加上40

Dim contentHeight As Integer = ChAm * 50 + 40 
Dim scrollBarArea As Integer = 490 
Dim viewableRatio As Double = scrollBarArea/contentHeight 
Dim thumbHeight As Double = scrollBarArea * viewableRatio 
Dim scrollTrackSpace As Integer = contentHeight - scrollBarArea 
Dim scrollThumbSpace As Double = scrollBarArea - thumbHeight 
Dim scrollJump As Double = scrollTrackSpace/scrollThumbSpace