【发布时间】:2023-04-10 19:21:01
【问题描述】:
我想平移给定元素的所有子元素,例如沿 X 轴平移 100 个像素。
几个注意事项:
- 我不想使用任何 jQuery 或其他库,因为我在一个库中使用它,如果可能的话应该是独立的
- 这将完全适用于 Chromium。事实上,我更喜欢使用
-webkit-transform: translate(...)而不是我现在正在做的事情(因为即使没有相对定位,-webkit-transform也可以工作)
我目前可以使用以下丑陋的 hacky 代码使其工作:
function translateElementChildrenBy(element, translation)
{
var children = element.children;
for(var i = 0; i < children.length; ++i)
{
var curPos = parseInt(children[i].style.left);
if(isNaN(curPos)) curPos = 0;
children[i].style.position = "relative";
children[i].style.left = "" + (curPos + translation);
}
}
translateElementChildrenBy(document.body, 100);
有没有更好(阅读:更清洁)的方法来实现这一点?或者,更好的是,有没有一种方法可以仅使用 -webkit-transform(即没有位置:相对)来完成此任务?
谢谢。
【问题讨论】:
标签: javascript webkit translation positioning transform