2013-06-06 68 views
0
页面上移

有底部的酒吧,CSS:JS功能使所有元素的

#bottom_nav { 
    position: absolute; 
    bottom: 0; 
    left: 0; 
    border-top: solid 1px lightgray; 
    background: url('http://localhost:3000/assets/font-try.jpg'); 
    height: 70px; 
    width: 100%; 
    font-family: "ProximaNova", "Helvetica Neue", Helvetica, Arial, sans-serif; 
    font-size: 12px; 
    font-weight: 400;} 

而且一些AJAX的行动有jQuery的功能,防止元素сover底栏:

var $beforeBar= $('#bottom_nav').prev().offset().top; 
    var $beforeBarPosition=$beforeBar+ $('#bottom_nav').prev().height(); 
if($beforeBarPosition+50>=$('#bottom_nav').offset().top){ 

     $('#bottom_nav').css({'top':$(document).height()+100}); 
    } 

问题在于,每次调用此函数时,页面上的所有元素都会稍微向左移动。看起来真丑。如果我禁用功能,则不会移位。

此外,jsfiddle

编辑:

Yeath,我知道了,它是在不断变化的文档高度出现窗口滚动面板。 任何解决方案?

+0

这里没有足够的信息来帮助。 JSFiddle似乎没有重新创建问题。你能否杀死链接网址并在小提琴中测试它,看看你是否得到相同的结果?一旦你可以复制它,我们可以提供帮助。 –

+0

死链接,是的,现在它重新创建问题,第一次点击导致左移,在我的主机权利,但没关系 –

回答

0

移位通过该线路引起的:

$('#bottom_nav').css({'top':$(document).height()+100}); 

这是设置#bottom_nav元件为100像素的顶部过去的文档的末尾...由170像素有效地增加文件的高度( 100px + #bottom_nav的高度)。下次运行此代码时,从$(document).height()返回的值为170更高...导致页面高度再增加170px。

+0

不行,转移是横向的,据说是“左转”。在回答之前可能会阅读问题是个好主意?无论如何,理由告诉@passerby –

+0

水平转移是由滚动条出现,这是由文档长度任意增加引起的。不管怎样,如果不断增加的长度是有意或无意的,如果不是这样,那么真正的修复应该解决*那*而不是滚动条出现的副作用。 – jcsanyi

相关问题