1

我正在尝试建立进度菜单栏(类似于 piccsy 投资者http://www.piccsy.com/investors/上的一个)

它测量页面的高度并进度%。

关于如何做的任何想法?

谢谢,尼古拉。

4

2 回答 2

10

在这里,您有解决此问题的方法。

首先是div:

<div id="bar"></div>​

现在一些样式:

body{
    height:4000px;
}

#bar{
    position:fixed;
    background-color:red;
    width:100%;
    height:10px;
}​

最后是 jQuery 代码:

var bar = $('#bar'),
    $window = $(window),
    docHeight = $(document).height(),
    baseX = $window.height() / docHeight * 100;

bar.css('background', '-webkit-linear-gradient(left, red '+ baseX +'%, green '+ baseX +'%)');

$window.scroll(function(e) {      
    var x = $window.scrollTop() / docHeight * 100 + baseX;
    bar.css('background', '-webkit-linear-gradient(left, red '+ x +'%, green '+ x +'%)');
});

您可以在jsfiddle中找到一个工作示例。

请注意,这仅适用于 Google Chrome,因为我只使用了-webkit-linear-gradient. 如果你想确保它在所有浏览器中都能正常工作,你应该添加它的特定属性。您可能会为此找到有用的Prefixr

于 2012-06-29T01:38:59.017 回答
9

您可以使用 .scroll() 来使用 jquery 捕获滚动事件。

$(window).scroll(function() {...})

在此函数中,您可以使用 .scrollTop() 函数获取滚动高度。

var height = $(window).scrollTop()

一旦你得到高度,你就可以设置进度条。

您可以使用此函数获取页面高度:

$(document).height();

这样您就可以计算百分比来设置进度条位置。

于 2012-06-25T19:58:53.860 回答