gpt4 book ai didi

javascript - 我可以将类添加到动态创建的 two.js 元素吗?

转载 作者:搜寻专家 更新时间:2023-11-01 04:28:19 25 4
gpt4 key购买 nike

我正在使用下面显示的代码在包装器 (div) 绘制形状内创建 46 个小圆圈;

let elem = document.getElementById('draw-shapes');
let params = { width: 1024, height: 768 };
let two = new Two(params).appendTo(elem);

for (let i = 1; i < 47; i++) {
circle = two.makeCircle(x, y, radius);
circle.fill = 'green';
circle.stroke = 'white';
circle.linewidth = 1;
circle.id = i;
}

所有绘图均使用 Two.js 库制作。我在文档中读到我可以更改创建的元素的 id,但我还需要为每个元素分配一个类。我已经尝试了从纯 js setAttribute 到 jQuery .attr 和 .addClass 方法的所有方法,但都没有用,所以我开始怀疑这是否可行?如果有人知道方法,请告诉我方法。谢谢。

最佳答案

没有内部实用程序或属性来获取每个 Two 元素的 DOM 节点。

但是 id您指定的确实添加为 two-<specified-id>到实际节点。

所以你可以使用正常的document.getElementById .

所以在你的情况下

let elem = document.getElementById('draw-shapes');
let params = {
width: 300,
height: 300
};
let two = new Two(params).appendTo(elem);

for (let i = 1; i < 20; i++) {
const circle = two.makeCircle(i * 10, i * 10, 40);
circle.fill = 'green';
circle.stroke = 'white';
circle.linewidth = 1;
circle.id = `two-circle-${i}`;
}
two.update();

// add classname to every fifth element;
for (let i = 1; i < 20; i += 5) {
const circleNode = document.getElementById(`two-circle-${i}`);
circleNode.classList.add('classname');

circleNode.addEventListener('mouseover', function() {
const path = two.scene.getById(this.id)
path.scale = 1.2;
two.update();
});

circleNode.addEventListener('mouseout', function() {
const path = two.scene.getById(this.id)
path.scale = 1;
two.update();
});
}
.classname {
stroke-width: 5;
stroke: red;
fill:yellow;
cursor:pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/two.js/0.6.0/two.js"></script>

<div id="draw-shapes"></div>

关于javascript - 我可以将类添加到动态创建的 two.js 元素吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54840243/

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