代码之家  ›  专栏  ›  技术社区  ›  backslash17

我怎么知道一个窗口是否不能再向右滚动?

  •  0
  • backslash17  · 技术社区  · 13 年前

    在递归超时期间,我有一个滚动函数,使一个非常宽的窗口水平滚动,直到它到达右端,但是我需要知道在javascript中,滚动是否已经完成,以改变方向并滚动回原点。

    我怎样才能做到这一点?

    function ScrollIt(scrollPos, direction) {
      if(direction == 'right')
       window.scrollBy(scrollPos,0);
      else
       window.scrollBy(scrollPos,0);
      cTimeOut = setTimeout("ScrollIt(1,'right')",10);
    }
    

    当然,我第一次调用onload事件中的函数。

    事先谢谢。

    1 回复  |  直到 13 年前
        1
  •  1
  •   Ben    13 年前
    var w = document.documentElement.clientWidth;
    var over = document.documentElement.scrollWidth - w;
    
    window.onscroll = function() {
      // Detect webkit browser (Chrome, Safari)
      if(window.devicePixelRatio) {
        if(document.body.scrollLeft==over) { alert("KABOOM (Webkit)") }
      }
      else {
        if(document.documentElement.scrollLeft == over) { alert("CRUNCH") }
      }
    }
    

    测试FF 3.6、IE8、Chrome 3.1、Safari 4.0