javascript - 如何通过 javascript 中的常见 html 类移动 css 元素?
问题描述
这里有点菜鸟!我在 HTML 和 CSS 的帮助下使用纯 JavaScript 工作,没有引擎。我正在尝试移动由 3 个部分组成的显示坦克精灵:轨道、底盘和炮塔。
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset="UTF-8">
<link rel='stylesheet' href='.css'>
<div class='tank' id='tracks'></div>
<div class='tank' id='chasis'></div>
<div class='tank' id='turret'></div>
</head>
<body>
<script src='.js'></script>
</body>
</html>
在这里,我为履带、底盘和炮塔创建了三个具有唯一 ID 的 div 元素。他们都共享普通级坦克。
.tank {
height: 31px;
width: 31px;
position: absolute;
}
#tracks {
background: url("tracks.png");
}
#chasis {
background: url("chasis.png");
}
#turret {
background: url("turret.png");
}
在我的 CSS 代码中,我将 3 个组件共享的所有属性归于它们的类,因此它们共享相同的大小和位置。由于这三个元素中的每一个都有一个无法共享的唯一图像,因此我通过 id 将其归因于每个元素。
var tracks = document.getElementById('tracks');
var chasis = document.getElementById('chasis');
var turret = document.getElementById('turret');
tracks.style.top = '167px';
chasis.style.top = '167px';
turret.style.top = '167px';
这段代码已经成功地将每个组件向下移动了 167px,但我想避免每次我想通过它的组件移动坦克时都重写所有这些。
var tank = document.getElementsByClassName('tank');
tank.style.top = '167px';
因此,我尝试按班级移动整个坦克,但没有成功。我究竟做错了什么?
谢谢!
解决方案
好的,我想我找到了另一种方法来实现这一点:
保持 html 和 css 不变。
var tracks = document.getElementById('tracks');
var chasis = document.getElementById('chasis');
var turret = document.getElementById('turret');
var tank = [tracks, chasis, turret];
for (var i = 0; i < tank.length; i++) {
tank[i].style.top = '167px';
}
报废js并扔在上面。
通过它们的 id 调用元素并创建一个数组 tank 来包含它们。然后在 tank.length(即 3)大于 i 时遍历数组,将 tank 元素移动 167px。由于 i 只能是 0、1 和 2,因此移动了 3 个元素(标记为 0、1 和 2)。
稍后如果您需要访问单个元素,您可以通过它们的 id 调用它们或在 tank 数组中找到它们,如下所示:tank[0]、tank[1] 或 tank[2]。
推荐阅读
- python - 如何与 chrome 扩展进行交互?
- docker - aerospike:Docker 容器中无法识别的服务?
- javascript - Chrome 扩展 - 如何使用 JavaScript 在 A 扩展的 B 扩展的选项页面字段中粘贴值
- python - 如何使用文本小部件中插入的某个问题并检查用户是否回答是或否?
- php - 在php中计算数组中具有相同名称的元素
- linux - javax.net.ssl.SSLException:收到致命警报:protocol_version,Java1.8.0_201 使用 TLSv1 而不是默认的 TLSv1.2 进行握手
- python - 如何根据记录中其他 4 个字段的布尔运算符有效地更新数据框中的字段?
- ios - pushViewController 无法执行 segue
- python - PyCharm 改变警告消息的颜色
- java - 无法将月份作为参数发送