【问题标题】:javascript - How do i detect when a user is at the top of the webpagejavascript - 我如何检测用户何时位于网页顶部
【发布时间】:2011-12-09 07:47:32
【问题描述】:

我对 javascript 几乎是全新的,我知道这里已经有一个类似的问题,但我想要脚本。

如果(用户位于页面顶部) { (执行此功能) }

提前致谢

【问题讨论】:

    标签: javascript function if-statement scroll


    【解决方案1】:

    这是一个小sn-p,我用它来确定页面的滚动顶部,我不记得我在哪里得到它,或者是我自己写的,所以不能相信它。

    var st=0;
    if(typeof pageYOffset!= 'undefined'){
        //most browsers
        st = pageYOffset;
    } else {
        var B = document.body; //IE 'quirks'
        var D = document.documentElement; //IE with doctype
        D = (D.clientHeight)? D: B;
        st = D.scrollTop;
    }
    

    如果 st==0 则用户位于页面顶部!

    【讨论】:

      【解决方案2】:

      我正在使用一个函数使其跨浏览器兼容,可以在这里找到:Cross-browser method for detecting the scrollTop of the browser window

      function getScrollTop(){
          if(typeof pageYOffset!= 'undefined'){
              //most browsers
              return pageYOffset;
          }
          else{
              var B= document.body; //IE 'quirks'
              var D= document.documentElement; //IE with doctype
              D= (D.clientHeight)? D: B;
              return D.scrollTop;
          }
      }
      
      if(!getScrollTop()){
         // user is at the top
      }
      

      这是一个小演示:http://jsfiddle.net/uDS4n/1/

      【讨论】:

        【解决方案3】:

        如果您是 JS 新手,这是一个干净的解决方案:

        //call your function on scroll
        window.onscroll = myScrollFunction;
        
        function myScrollFunction(){
          if(getYOffset() == 0){
            //if at top, do this
            alert('bingo');
        
          }
        };
        //helper function (since ie handles scrolling different than firefox)
        function getYOffset() {
            var pageY;
            if(typeof(window.pageYOffset)=='number') {
               pageY=window.pageYOffset;
            }
            else {
               pageY=document.documentElement.scrollTop;
            }
            return pageY;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-01-10
          • 1970-01-01
          • 2020-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多