2012-12-13 59 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