2012-12-13 45 views
0

如何使用javascript增加每个位置:通过多个像素固定在页面中?增加固定的位置

例如:我有一个带有几个固定位置元素的网页,我在顶部使用javascript插入一个工具栏。现在,工具栏占用了40px的空间,所有固定元素的位置都是40px。

我需要一些JavaScript,我可以在引入工具栏时同时触发,这会增加所有由40px固定的位置。

+0

您需要对您使用的相关标记进行一些了解,确定需要重新定位的元素是否共享类名? –

+0

固定元素是否有共同的类? – Eli

+0

谢谢。元素可以是任何东西,是否有可能只增加40px的所有职位? – CalumMc

回答

0

你可以给一个普通类每个固定的元素,然后针对所有这些:

<div class="fixed"> 
    some fixed element 
</div> 

JS(jQuery的方法):如果不使用jQuery看到斯坦的答案

$('.fixed').each(function(){ 
    $(this).css('top', $(this).css('top') + 40 + 'px'); 
}); 

0

您可以通过修改JS中的样式属性来设置元素的顶部或底部CSS属性。

0

我会想象你不得不做这样的事情:

var elems = document.all || document.getElementsByTagName("*"); 
// I know document.all isn't ideal, but it saves a function call if it's there ;) 
var l = elems.length, i, stl; 
window.getComputedStyle = window.getComputedStyle || function(e) {return e.currentStyle}; 
for(i=0; i<l; i++) { 
    stl = window.getComputedStyle(elems[i]); 
    if(stl.position === "fixed") { 
    elems[i].style.marginTop = ((parseInt(stl.marginTop,10) || 0) + 40) + "px"; 
    } 
} 

,而不是top采用margin-top是允许的东西像top:50%。当然,margin-top也可以是一个百分比,这会是一个问题,但不太频繁。

+0

谢谢。我得走了,但我明天再试。 – CalumMc

+0

另一件需要注意的事情是:应该避免使用'bottom'属性锚定的元素。 –

+0

@Kolink:为什么?对我而言,似乎有必要进行一些布局。 – Bergi