【发布时间】:2011-12-09 07:47:32
【问题描述】:
我对 javascript 几乎是全新的,我知道这里已经有一个类似的问题,但我想要脚本。
如果(用户位于页面顶部) { (执行此功能) }
提前致谢
【问题讨论】:
标签: javascript function if-statement scroll
我对 javascript 几乎是全新的,我知道这里已经有一个类似的问题,但我想要脚本。
如果(用户位于页面顶部) { (执行此功能) }
提前致谢
【问题讨论】:
标签: javascript function if-statement scroll
这是一个小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 则用户位于页面顶部!
【讨论】:
我正在使用一个函数使其跨浏览器兼容,可以在这里找到: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/
【讨论】:
如果您是 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;
}
【讨论】: