javascript - 如何在 JavaScript 中使用 Skycons 两次使用 id

标签 javascript

我正在使用 Skycons,它工作得非常好。但是当我有 2 个 Canvas ID 时,它会渲染第一个,但另一个将为空白。

在 JS 中我有:

var icons = new Skycons({
            "color": "#73879C"
        }),
                list = [
                    "clear-day", "clear-night", "partly-cloudy-day",
                    "partly-cloudy-night", "cloudy", "rain", "sleet", "snow", "wind",
                    "fog"
                ],
                i;

        for (i = list.length; i--; )
            icons.add(list[i], list[i]);

        icons.play();

所以当我需要 3 个图标时

<canvas id="rain" width="128" height="128"></canvas>
<canvas id="partly-cloudy-day" width="128" height="128"></canvas>
<canvas id="partly-cloudy-day" width="128" height="128"></canvas>

前两个将渲染,但第三个不会渲染,因为它已被使用两次(id)。我需要渲染所有相同的 id,因为我不知道要使用多少次晴天。我希望这是有道理的,但请随意提出任何需要的问题。

感谢您的帮助

最佳答案

发现这个:Skycons, cant display the same icon twice?

通过使用类而不是 ID,并像我链接的答案一样调整您的函数:

var icons = new Skycons({
        "color": "#73879C"
    }),
    list = [
        "clear-day", "clear-night", "partly-cloudy-day",
        "partly-cloudy-night", "cloudy", "rain", "sleet", "snow", "wind",
        "fog"
    ],
    i;

for (i = list.length; i--;) {
    var weatherType = list[i],
        elements = document.getElementsByClassName(weatherType);
    for (e = elements.length; e--;) {
        icons.set(elements[e], weatherType);
    }
}

icons.play();

JSFiddle:https://jsfiddle.net/yuriy636/egg7p7hr/

关于javascript - 如何在 JavaScript 中使用 Skycons 两次使用 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38615768/

相关文章:

java - 移动网络应用程序的表单字段中的文件上传

javascript - Canvas 游戏中的图像闪烁

javascript - 在忽略一天中的时间的情况下比较 JavaScript 日期

javascript - JavaScript 中的井字游戏

javascript - 如何使用 Jasmine 监视静态类方法

javascript - 无法读取字符之间的空格

javascript - 当我有一个隐藏字段(如果选择一个选项时会显示该字段)时,我无法获取选择元素的值

javascript - 将 .on 事件与对象绑定(bind)

Javascript 隐藏/显示 - 更优雅的方式来做到这一点?

javascript - 检查 tagName 或 instanceof HTMLAnchorElement 是否更好