2016-01-24 26 views
0

我需要有一个页脚与其父窗口相关,我需要将其固定到窗口底部。页脚动态绝对位置,缺失像素 - 无限滚动

我做了一个计算,以得到正确的top值,但我缺少8个像素 - 这会导致滚动无限滚动。

我在计算中缺少什么?

$(function() { 
 
    changeFooter(); 
 
}); 
 

 
$(window).resize(function() { 
 
    changeFooter(); 
 
}); 
 
$(window).scroll(function() { 
 
    changeFooter(); 
 
}); 
 

 
function changeFooter() { 
 
    var footer = $("#footer"); 
 
    footer.css({ top: getFooterTop(footer) + 'px' }); 
 
} 
 

 
function getFooterTop(footer) { 
 
    return window.innerHeight + $(window).scrollTop() - footer.height(); 
 
} 
 

 
function getFooterTopFixed(footer) { 
 
    return window.innerHeight + $(window).scrollTop() - footer.height() - 8; 
 
}
#wrap { 
 
    position:absolute; 
 
    left:0px; 
 
    width: 100%; 
 
    margin-bottom: 50px; 
 
} 
 

 
#footer { 
 
    position: absolute; 
 
    width: 100%; 
 
    height: 50px; 
 
    background-color: green; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="wrap"> 
 
    <p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p><p>Content</p> 
 
    <div id="footer"></div> 
 
</div>

https://jsfiddle.net/rs4f1jt0/2/

您可以在链接看到-8像素修复的定位,我只是想不通那些人在那里8个像素来自何处来解决计算。

谢谢。

+2

你为什么不使用[位置:固定;(https://jsfiddle.net/rs4f1jt0/4/)呢?你的问题是关于正文默认页边距https://jsfiddle.net/rs4f1jt0/3/这是你应该总是使用[重置CSS样式表](http://meyerweb.com/eric/tools/css/reset/ ) –

+0

'你为什么不使用position:fixed;相反'''我需要有一个页脚相对于它的父'所以我想你的发布的例子只是一个基本的确实 –

+0

***⇈⇈***这将是解决方案,但仍然在草案:[CSS位置粘贴](http://caniuse.com/#feat=css-sticky) –

回答

0

为什么不尝试使用固定在页脚上的位置?就像这样:

#wrap { 
position:relative; 
left:0px; 
width: 100%; 
margin-bottom: 50px; 
} 

#footer { 
position: fixed; 
bottom:0; 
width: 100%; 
height: 50px; 
background-color: green; 
} 
+0

它不会与任何不合格的父项关联,而是与视口关联。我猜,OP刚刚提供了一个关于他的问题的MCVE。但除此之外,应该使用固定元素 –

+0

职位:固定不是一个选项,原因在评论中解释。 –