JavaScript - Как я могу определить, когда пользователь находится в верхней части веб-страницы - PullRequest
1 голос
/ 08 декабря 2011

Я в значительной степени новичок в javascript, и я знаю, что здесь уже есть подобный вопрос, но я бы хотел сценарий как в.

if (пользователь вверху страницы){(выполнить эту функцию)}

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 08 декабря 2011

Я использую функцию, чтобы сделать его кросс-браузерным совместимым, который можно найти здесь: Кросс-браузерный метод для обнаружения scrollTop окна браузера

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/

0 голосов
/ 08 декабря 2011

Вот чистое решение, которое должно иметь смысл, если вы новичок в 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;
}
0 голосов
/ 08 декабря 2011

Это небольшой фрагмент, который я использую для определения полосы прокрутки страницы, я не могу вспомнить, где я ее получил, или написал ли я сам, поэтому не могу поверить.

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, то пользователь находится вверху страницы!

...