使用Javascript将页脚保持在底部

使用Javascript将页脚保持在底部,javascript,sticky-footer,Javascript,Sticky Footer,目前,我正试图用Javascript将页脚保持在底部。结果是: document.getElementsByTagName('body').onload = function() {KeepFoot()}; var element = document.getElementById('container'); var height = element.offsetHeight; function KeepFoot() { if (height < screen.height) {

目前,我正试图用Javascript将页脚保持在底部。结果是:

document.getElementsByTagName('body').onload = function() {KeepFoot()};
var element = document.getElementById('container');
var height = element.offsetHeight;

function KeepFoot() {
    if (height < screen.height) {
        document.getElementById("footer").style.position = "fixed";
        document.getElementById("footer").style.bottom = "0";
        document.getElementById("footer").style.left = "0";
        document.getElementById("footer").style.right = "0";
    }
}

我觉得你的功能很好。可能缺少的是函数调用

function KeepFoot() {
    if (height < screen.height) {
        document.getElementById("footer").style.position = "fixed";
        document.getElementById("footer").style.bottom = "0";
        document.getElementById("footer").style.left = "0";
        document.getElementById("footer").style.right = "0";
    }
}

KeepFoot();
函数KeepFoot(){
if(高度<屏幕高度){
document.getElementById(“页脚”).style.position=“固定”;
document.getElementById(“页脚”).style.bottom=“0”;
document.getElementById(“页脚”).style.left=“0”;
document.getElementById(“页脚”).style.right=“0”;
}
}
KeepFoot();
参见此

“DOMContentLoaded”
事件仅在文档准备就绪时触发,类似于jquery的
$(document.ready)

对于样式,您可以使用类,而不是使用javascript设置每个样式

代码

document.addEventListener(“DOMContentLoaded”),函数(事件){
var元素=document.getElementById('container');
var高度=元素。偏离视线;
if(高度<屏幕高度){
document.getElementById(“footer”).classList.add('stikybottom');
}
},假)
#footer.stikybottom{
位置:固定;
底部:0;
左:0;
右:0;
}

标题
康奈特
页脚上有东西

如果您希望在页面底部保留页脚,则必须阅读此内容


您可以在没有js的情况下执行此操作。

加载时不会调用此函数。您可以像这样将函数KeepFoot直接附加到body标记,而不是像这样调用:

 document.getElementsByTagName('body').onload = function() {KeepFoot()};
或者使用下面的代码:

 (function() {
    var offsetHeight = document.getElementById('container').offsetHeight;   
    var screenHeight = screen.height;

if(offsetHeight < screenHeight){
    document.getElementById("footer").style.position = "fixed";
    document.getElementById("footer").style.bottom = "0";
    document.getElementById("footer").style.left = "0";
}
})();
(函数(){
var offsetHeight=document.getElementById('container')。offsetHeight;
var screenHeight=screen.height;
if(离视<屏幕高度){
document.getElementById(“页脚”).style.position=“固定”;
document.getElementById(“页脚”).style.bottom=“0”;
document.getElementById(“页脚”).style.left=“0”;
}
})();

为什么不使用()方法?请添加一个解释,说明您的代码是做什么的,以及您为什么这样编写代码。只有代码的答案通常不受欢迎。谢谢jed panda,现在它可以工作了。谢谢你建议添加一个类。如果屏幕高度太小,无法容纳页脚+内容,这将不起作用。
 (function() {
    var offsetHeight = document.getElementById('container').offsetHeight;   
    var screenHeight = screen.height;

if(offsetHeight < screenHeight){
    document.getElementById("footer").style.position = "fixed";
    document.getElementById("footer").style.bottom = "0";
    document.getElementById("footer").style.left = "0";
}
})();