2012-10-16 54 views
0

我正在使用jQuery来计算当前滚动的页面数量,并在每次滚动页面时将该值写入输入。在jQuery中更改页面滚动百分比的输入值

var scrollAmount = $(window).scrollTop(); 
var documentHeight = $(document).height(); 
var scrollPercent = (scrollAmount/documentHeight) * 100; 

$(window).scroll(function (event) { 
$(".box").val(scrollPercent); 
});​ 

小提琴:http://jsfiddle.net/x3jXK/

然而,当我尝试这一点,输入始终显示为零。

我记得阅读一些关于使用.attr()而不是.val()的内容,因为显示值不会改变,但不知道如何在这里实现它,因为它动态地改变,而不仅仅是从一秒到另一秒。

回答

1

你的变量应该在你的函数中,所以它们可以在每次滚动时计算出来。

$(window).scroll(function(event) { 
    var scrollAmount = $(window).scrollTop(); 
    var documentHeight = $(document).height(); 
    var scrollPercent = (scrollAmount/documentHeight) * 100; 

    $(".knob").val(scrollPercent); 
}); 

测试在这里:http://jsfiddle.net/RASG/x3jXK/1/

+0

我不能相信这一点。他们不被认为是全球变量吗? –

+0

解释会很好;-) –

+1

@MattRiva问题不在于范围界定。问题是计算时间 –