Javascript 增加任何固定位置

Javascript 增加任何固定位置,javascript,css,css-position,Javascript,Css,Css Position,我如何使用javascript来增加每个位置:在页面中固定若干像素 例如:我有一个带有几个固定位置元素的网页,我使用javascript在顶部插入一个工具栏。现在工具栏占用了40px的空间,所有固定元素的位置都是40px 我需要一些javascript,我可以在引入工具栏的同时启动它,该工具栏可以将所有固定位置增加40px。您可以通过修改JS中的样式属性来设置元素的顶部或底部CSS属性。我想您必须这样做: var elems = document.all || document.getEleme

我如何使用javascript来增加每个位置:在页面中固定若干像素

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


我需要一些javascript,我可以在引入工具栏的同时启动它,该工具栏可以将所有固定位置增加40px。

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

我想您必须这样做:

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";
  }
}
var elems=document.all | | document.getElementsByTagName(“*”);
//我知道document.all并不理想,但如果有,它会保存一个函数调用;)
var l=元素长度,i,stl;
window.getComputedStyle=window.getComputedStyle | |函数(e){返回e.currentStyle};

对于(i=0;i,您可以为每个固定元素指定一个公共类,然后针对所有这些元素:

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

如果不使用jquery,请参阅aurel的答案

您需要了解您正在使用的相关标记,需要重新定位的元素是否共享一个类名?固定元素是否有一个公共类?谢谢。元素可以是任何东西,是否可以将所有位置增加40px?有多少固定位置的元素o您有吗?请给我们看一些标记另一件需要注意的事情:应该避免使用
底部
属性锚定的元素。@Kolink:为什么?我觉得有些布局很有必要。
$('.fixed').each(function(){
    $(this).css('top', $(this).css('top') + 40 + 'px'); 
});