javascript - 如何检测用户何时位于网页顶部

时间:2011-12-08 13:30:44

标签: javascript function if-statement scroll

我对javascript几乎是全新的,我知道这里已经有类似的问题,但我希望脚本可以用于。

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

提前致谢

3 个答案:

答案 0 :(得分:0)

这是我用来确定页面滚动顶部的一小段,我不记得我从哪里得到它,或者我是否自己编写了它,所以不能归功于它。

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则用户位于页面顶部!

答案 1 :(得分:0)

我正在使用一个函数使其跨浏览器兼容,可在此处找到: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/

答案 2 :(得分:0)

这是一个干净的解决方案,如果你是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;
}