我正在构建一个Wordpress主题,我的页脚位置有问题。索引页面很好,我在style.css margin-top of“footer”中定义,女巫持有bipimage到900px,margin-top为“foot_sadrzaj”到918px,因为“foot_sadrzaj”包含文本和图像。这是链接:http://casabianca.ba/test/
好吧,如果我转到页面,页面的内容就在,或者在显示帖子时,在。我写了一些JS代码来改变页脚和foot_sadrzaj的位置,取决于sadrzaj或sadrzaj_single的位置和高度,包含内容的元素,但它不起作用(如:http://casabianca.ba/test/novosti/)....你能帮助吗?我弄明白为什么?
这里是代码:
var div = getElementById('sadrzaj');
var div2 = getElementById('sadrzaj_single');
if (div) {
var z = div.style.offsetTop+div.style.offsetHeight;
getElementById('footer').setAttribute(
"style", "marginTop:" + z.toString() + "px");
getElementById('foot_sadrzaj').setAttribute(
"style", "marginTop:" + (z+18).toString() + "px");
}
else if (div2) {
var z = div2.style.offsetTop+div2.style.offsetHeight;
getElementById('footer').setAttribute(
"style", "marginTop:" + z.toString() + "px");
getElementById('foot_sadrzaj').setAttribute(
"style", "marginTop:" + (z+18).toString() + "px");
}
拜托,我所知道的只是一些JS和零JQuery所以回答像“试试Jquery,我认为......”这样的东西根本不会有用......
答案 0 :(得分:1)
代码中的一些修复
window.onload = function ()
{
var div=document.getElementById('sadrzaj');
var div2=document.getElementById('sadrzaj_single');
if(div) {
var z=div.offsetTop+div.offsetHeight;
var footer = document.getElementById('footer');
footer.setAttribute("style","margin-top:" + z.toString() + "px");
var foot_sadrzaj = document.getElementById('foot_sadrzaj');
foot_sadrzaj.setAttribute("style","margin-top:" + (z+18) + "px");
}
else if (div2) {
var z=div2offsetTop+div2.offsetHeight;
document.getElementById('footer').setAttribute("style","margin-top:" + z + "px");
document.getElementById('foot_sadrzaj').setAttribute("style","margin-top:" + (z+18) + "px");
}
}
window.onload
,仅在文档准备好后运行脚本style
中的div.style.offsetTop+div.style.offsetHeight
。margin-top
函数中写了.setAttribute
,而不是marginTop
。toString()
,JS知道如何处理这个document.getElementById('footer').setAttribute("style","margin-top:" + z + "px");
正在禁用您在那里写的内联background-image
属性,我假设您可以自己处理此问题答案 1 :(得分:0)
而不是margin-top
使用"bottom : 0"
将事物对齐到容器div的底部。然后停止使用Javascript来定义位置,而只是使用CSS。
设置"z-index:100000"
和"position:fixed"
答案 2 :(得分:0)
即使是严格的代码,我也错过了一个角度:如果内容小于浏览器窗口,该怎么办?还是没有内容呢?然后我的页脚挂在中间的某个地方,而不是在底部。这是解决方案,感谢@Mitz和James Padolsey
最终解决方案:
function getDocHeight() {
var D = document;
return Math.max(
Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
Math.max(D.body.clientHeight, D.documentElement.clientHeight)
);
}
window.onload = function (){
var div=document.getElementById('sadrzaj');
if(div) {
var z=div.offsetTop+div.offsetHeight;
var z2=div.offsetTop+div.offsetHeight+18;
var windowHeight= getDocHeight();
if(z>windowHeight) {
var footer = document.getElementById('footer');
footer.setAttribute("style","margin-top:" + z + "px");
var foot_sadrzaj = document.getElementById('foot_sadrzaj');
foot_sadrzaj.setAttribute("style","margin-top:" + z2 + "px");
}
else {
var footer = document.getElementById('footer');
footer.setAttribute("style","margin-top:" + windowHeight + "px");
var foot_sadrzaj = document.getElementById('foot_sadrzaj');
foot_sadrzaj.setAttribute("style","margin-top:" + (windowHeight+18) + "px");
}
}