检测滚动何时到达页面底部 [ 没有 jQuery]
Detect when Scroll reaches the BOTTOM of the page [ without jQuery ]
我想在滚动到达页面底部时提醒一些东西,如下所示:
$(function(){
$(document).scroll(function() {
if($(document).scrollTop() == 0) alert("top");
})
})
但是没有jQuery,并在到达底部时发出警报。
document.addEventListener('scroll', function (event) {
if (document.body.scrollHeight ==
document.body.scrollTop +
window.innerHeight) {
alert("Bottom!");
}
});
JSFiddle here: http://jsfiddle.net/cSer6/
if(window.addEventListener){
window.addEventListener('scroll',scroll)
}else if(window.attachEvent){
window.attachEvent('onscroll',scroll);
}
function scroll(ev){
var st = Math.max(document.documentElement.scrollTop,document.body.scrollTop);
if(!st){
console.log('top');
}else if((st+document.documentElement.clientHeight)>=document.documentElement.scrollHeight ){
console.log('bottom');
}
}
示例:http://jsfiddle.net/ampersand/AEnzJ/
在Chrome 17/18,Safari 5,FF 10/11.0,IE 7-9中使用 http://browserling.com 进行测试
这
在IE中对我有用
document.onscroll = function() {
if(document.documentElement.scrollTop + window.innerHeight == document.documentElement.scrollHeight)
{
alert('bottom');
}
}
http://jsfiddle.net/cSer6/46/
document.onscroll = function() {
if(!document.body.scrollTop){
alert('top');
}
}
JSFiddle 演示
if (document.body.scrollHeight <= Math.ceil(window.pageYOffset + window.innerHeight)) {
这在勇敢中起作用了。
function addEvent(node, type, callback) {
if('addEventListener' in node) {
node.addEventListener(type, callback, false);
} else {
node.attachEvent('on' + type, callback);
}
}
addEvent(window, 'scroll', (function() {
// https://developer.mozilla.org/en/DOM/window.scrollY#Notes
var stObj, stProp;
if('scrollY' in window) { // CSSOM:
// http://www.w3.org/TR/cssom-view/#extensions-to-the-window-interface
stObj = window;
stProp = 'scrollY';
} else if('pageYOffset' in window) { // CSSOM too
stObj = window;
stProp = 'pageYOffset';
} else {
stObj = document.documentElement.clientHeight ?
document.documentElement : document.body;
stProp = 'scrollTop';
}
var node = document.documentElement.clientHeight ?
document.documentElement :
document.body; // let's assume it is IE in quirks mode
var lastSt = -1;
return function(e) {
if(lastSt !== stObj[ stProp ] && // IE <= 8 fires twice
node.scrollHeight === stObj[ stProp ] + node.clientHeight) {
alert('bottom');
}
lastSt = stObj[ stProp ];
};
})());
它已成功通过Firefox 11,Chrome 17,IE 9(X-UA-Compatible:8,7,5)和Opera 11.60进行了测试。
相关文章:
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 我的jQuery插件参数没有正确启动,遇到了问题
- 视频HTML没有'无法在Internet Explorer 11上工作
- 将视口底部滚动到元素底部
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 页脚在滚动底部时没有设置高度动画
- 检测滚动何时到达页面底部 [ 没有 jQuery]
- 如何在没有在 PHP 或 JavaScript 中在页面底部显示地址的情况下打印文档
- 当光标到达底部时,有没有办法防止contentEditable元素滚动
- 为什么在IE加载图像没有显示在页面的底部
- 如果我没有'我没有太多内容,如何在页面底部获得页脚,但我没有;I don’我不想要一个黏糊糊的页脚
- jScrollPane没有贴在底部
- 有没有办法保持滚动条始终在底部使用css
- 内容和页脚重叠,没有将页脚推到底部
- 如果没有可用的内容,则强制页脚到页面底部
- 当你滚动到底部时添加新信息的JavaScript函数,没有像我预期的那样工作
- 恼人的不必要的溢出和页边空白顶部/底部没有'不起作用
- Jquery没有在head中加载,而是在body标记的底部加载
- 有没有一种方法可以在javascript中进行反射,但将反射的底部淡出