gpt4 book ai didi

javascript - 在 (js) 中加载新元素时如何重新定位 HTML 元素?

转载 作者:行者123 更新时间:2023-11-30 11:01:16 25 4
gpt4 key购买 nike

我只是为我正在制作的 mod 构建这个 UI,它开始时完全不可见,元素会弹出以根据游戏中的使用情况提供信息。

例如,这是一张图片:

enter image description here

我希望每个元素都保持不可见,唯一永久的元素是麦克风。其他元素将在使用时淡入并在栏满时淡出。

我只是想知道如何让每个框在它们淡入时向左推,以便 UI 顺利运行,并且如果一个显示而另一个不显示,我不会在每个元素之间出现任何大的间隙。

我如何根据哪些事件/正在使用来重新定位它们?

body {
background: linear-gradient(#e66465, #9198e5);
background-repeat: no-repeat;
background-size: 1920px 1080px;
}

.box1 {
position: absolute;
right: 170px;
bottom: 37.5px;
width: 50px;
height: 50px;
background: rgba(0, 0, 0, 0.4);
z-index: 1;
}

.box2 {
position: absolute;
background: rgba(0, 0, 0, 0.4);
right: 230px;
bottom: 37.5px;
width: 50px;
height: 50px;
}

.box3 {
position: absolute;
background: rgba(0, 0, 0, 0.4);
right: 290px;
bottom: 37.5px;
width: 50px;
height: 50px;
}
<body>
<div class="container">
<div class="box1">
</div>
<div class="box2">
</div>
<div class="box3">
</div>
</div>
</body>

最佳答案

您最好使用可重用的 css 类,然后将您的切换框与一些 js 事件绑定(bind)。

如果操作正确,元素每次都会将自己放置在正确的位置。

看看这个例子:

const togglingBoxes = document.querySelectorAll('.js-toggle');

setInterval(() => togglingBoxes.forEach(box => box.style.display = Math.random() > 0.5 ? 'inline-block' : 'none'), 500)
body {
background: linear-gradient(#e66465, #9198e5);
background-repeat: no-repeat;
background-size: 1920px 1080px;
}

.container {
position: absolute;
right: 170px;
bottom: 37.5px;
}

.box {
display: inline-block;
width: 50px;
height: 50px;
background: rgba(0, 0, 0, 0.4);
margin-left: 10px;
}
<body>
<div class="container">
<div class="box js-toggle">
1
</div>
<div class="box js-toggle">
2
</div>
<div class="box">
3
</div>
</div>
</body>

关于javascript - 在 (js) 中加载新元素时如何重新定位 HTML 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57606913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com