【发布时间】:2020-09-16 20:34:12
【问题描述】:
我正在进行一项个人练习,我在其中创建了一个小应用程序,以允许用户使用 <input type = "color"> 元素更新 SVG 不同部分的颜色。
我正在玩的 SVG 是一个简单的云图,里面有文字。您可以修改 3 个部分:云的笔触颜色、云的填充颜色和文字的颜色。
现场观看:
这是一个简单的 UI,有 3 个区域:
- 随机按钮,将随机颜色应用于 SVG。
- 三个
<input type="color">元素用于 SVG 的每个部分 手动修改每种颜色。 - 下载按钮,允许 用户导出带有自定义颜色的 SVG。
以下是我注意到的困扰我但还不知道如何解决的问题:
当我点击“随机”时,SVG 颜色以及
<input type="color">元素的值以及页面上元素的颜色(即 小方块 颜色与相关 SVG 部分的颜色相匹配)。当我通过
<input type="color">元素单独应用颜色时,SVG 的颜色以及<input type="color">元素的值会更新,输入颜色元素的颜色也会更新在页面上(小方块)。但是如果我在手动从颜色选择器中选择了一种颜色后单击“随机”: SVG 颜色已更新,
<input type="color">元素的 value 属性也已更新,但页面上元素的颜色不会更新,它与之前手动选择的颜色保持一致。 (即小方块颜色与相关 SVG 部分的颜色不匹配,尽管元素的 value 属性匹配。)
【问题讨论】:
-
请阅读How to Ask。与您的问题相关的代码直接属于您的问题,以文本形式且格式正确,或作为可执行堆栈片段,在有意义的情况下。请不要只是在外部平台上提供代码 - 当它在那里消失时,这里的问题将失去所有上下文。
-
请在问题中包含minimal reproducible example。解决此问题后,异地链接将来将不再有用,因此没有其他人可以从解决方案中受益-不是其他遇到类似问题的访问者,甚至如果有人提出可能更好的解决方案,即使是您也一样.
标签: javascript html