var lasty=0;
function show()
{
var scrolltop=document.documentElement.scrollTop;
var percent=0.1*(scrolltop-lasty); if(percent>0)
{
percent=Math.ceil(percent);
}
else
{
percent=Math.floor(percent);
}
lasty=lasty+percent;
}问题是:scrolltop和lasty为什么总是相等呢?
var lasty=0;
function show()
{
var scrolltop=document.documentElement.scrollHeight;
var percent=0.1*(scrolltop-lasty); if(percent>0)
{
percent=Math.ceil(percent);
}
else
{
percent=Math.floor(percent);
}
lasty=lasty+percent;
}
</script>
<body>
<input id="" type="button" value="ok" onclick="show()"/>
<br/>
<br/><br/><br/><br/>
<br/>
<br/>
<br/>
<br/><br/>
<br/><br/>
<br/>
<br/><br/>
<br/>
<br/>
<br/><br/>
<br/><br/>
<br/>
<br/><br/>
<br/>
<br/>
<br/><br/>
<br/><br/>
<br/>
<br/><br/>
<br/>
<br/><br/>
<br/><br/>
asds
</body>
把scrollTop改为scrollHeight
percent = 0.1 * (scrolltop - lasty) = 10;
lasty = lasty + percent = 10;这是执行了一次 show() 的情况,如果show循环执行下去,那么:percent = 0.1 * (100 - 10) = 9;
lasty = 10 + 9 = 19;percent = 0.1 * (100 - 19) = 9;
lasty = 19 + 9 = 28;...LZ数学不乍的呀
<script type="text/javascript">
var lasty=0;
function show()
{
var scrolltop=document.documentElement.scrollTop;
var percent=0.1*(scrolltop-lasty); if(percent>0)
{
percent=Math.ceil(percent);
}
else
{
percent=Math.floor(percent);
}
lasty=lasty+percent;
}
window.setInterval("show()",1);</script>‘这句漏下了6楼的算法,lasty和scrolltop还是不相等啊