Javascript 如何通过JS变量的值来增加CSS值?

Javascript 如何通过JS变量的值来增加CSS值?,javascript,css,arrays,position,Javascript,Css,Arrays,Position,我有几个同一类的固定位置div,距离窗口的左边缘有不同的距离,我想在每个div上增加/减少相等的距离,在这种情况下,当某个动作发生时,窗口被调整大小。我试着用CSS和百分比而不是像素来定位它们,但效果不太好 有没有一种方法可以存储数组中每个div的位置,然后加/减给定数量的像素 以下是我到目前为止所做的尝试-我仍然在思考JS,因此这可能对我所知道的一切都很糟糕,但下面是: roomObjects = $('.object-pos'); var objectCount = 0; for ( v

我有几个同一类的固定位置div,距离窗口的左边缘有不同的距离,我想在每个div上增加/减少相等的距离,在这种情况下,当某个动作发生时,窗口被调整大小。我试着用CSS和百分比而不是像素来定位它们,但效果不太好

有没有一种方法可以存储数组中每个div的位置,然后加/减给定数量的像素

以下是我到目前为止所做的尝试-我仍然在思考JS,因此这可能对我所知道的一切都很糟糕,但下面是:

roomObjects = $('.object-pos');

var objectCount = 0;

for ( var objectCount = 0; objectCount < 10; objectCount++;) {
          roomObjects = rooomObjects[objectCount];
          console.log(roomObjects.css("background-position").split(" "));
        }

您可能面临的一个问题是,在检索当前的left或top属性时,它们将作为字符串返回,并且px的末尾为%。尝试对返回的值运行parseInt以获得一个数字,然后您可能能够添加到这些值中。重新分配时,请确保在末尾适当地连接px或%。

您介意分享为什么百分比不起作用吗?通常,如果您希望页面在调整窗口大小时正确缩放,我会建议您这样做。我想如果你真的想,你可以这样做:

$(window).resize(function() { 
    $('#whateverdiv').style.whateverproperty = $('#whateverdiv').style.whateverproperty.toString() + (newPosition - oldPosition);
    oldPosition = newPosition;
}
这显然不是完整的代码,但您应该能够填补空白。您必须在页面加载时使用原始位置设置oldPosition变量,以便函数第一次工作


编辑:您还必须从x.style.property字符串中去掉单位,以便能够向其添加值

您可以使用一些jQuery:

var el = $("#id");
var top = el.css("top");
el.css("top", top * 1.2); // increase top by 20%
避免在DOM中乱扔垃圾


如果你想相对地定位事物,这可能很有用:

你介意分享为什么百分比不起作用吗?通常,如果你想在调整窗口大小时正确缩放页面,我会建议你这样做。当然-我将div设置为背景图像,背景图像设置为背景大小:封面和背景位置:中间顶部,除非窗口小于背景图像的大小,在这种情况下,my js将禁用背景大小样式。我需要div与我放置它们的背景图像保持对齐,以便如果窗口小于bg图像,div会随之移动。您可以添加另一个宽度和高度设置为窗口大小的内容div,然后让相关div驻留在该窗口内。这样,包含的div总是整个页面的大小,而背景大小实际上并不重要。您的div将与包含的div一起缩放。我希望我能正确理解这个问题谢谢你的帮助-我知道我的问题有点含糊不清,因为我不太清楚在这种情况下我到底想要什么,但这有助于: