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为什么总是相等呢?

解决方案 »

  1.   

    没有垂直滚动条的时候,document.documentElement.scrollTop为0,lasty也为0,故两者相等
      

  2.   

    当内部容器的高度超过外部容器的高度的时候,scrollTop才可以被赋值,其他时候失效,永远返回0
      

  3.   

    但是在有滚动条的时候,这两个变量也是相等的,。WHY???
      

  4.   

    <script>
    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
      

  5.   

    lasty = 0,scrollTop由 0 变为 100,那么:
    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数学不乍的呀
      

  6.   


    <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还是不相等啊