【发布时间】:2015-04-20 16:31:06
【问题描述】:
我正在尝试用 SVG 做一些不同的事情。到处寻找,甚至找不到是否可以做到:我有一个花卉图案 (http://pages.bangor.ac.uk/~abp4d9/),用户移动滑块(用于内圈和花瓣)并且花朵会发生变化。 我有一个可以使用的按钮。我希望它将随机不同大小的圆圈应用于图案。 这是我的内联 SVG
<svg width="520" height="520">
<defs>
<pattern id="pattern" x="5" y="5" width="140" height="140"
patternUnits="userSpaceOnUse"
patternTransform="rotate(45)">
<path d="M 0 106 156 106" stroke="black" stroke-width="2" />
<g>
<ellipse id="petal" cx=60 cy=40 rx=60 ry=10 stroke="black" stroke- width="2" fill="white"/>
<ellipse id="petal1" cx=60 cy=40 rx=60 ry=10 stroke="black" stroke-width="2" fill="white" transform="rotate(35, 60, 40)"/>
<ellipse id="petal2" cx=60 cy=40 rx=60 ry=10 stroke="black" stroke-width="2" fill="white" transform="rotate(70, 60, 40)"/>
<ellipse id="petal3" cx=60 cy=40 rx=60 ry=10 stroke="black" stroke-width="2" fill="white" transform="rotate(105, 60, 40)"/>
<ellipse id="petal4" cx=60 cy=40 rx=60 ry=10 stroke="black" stroke-width="2" fill="white" transform="rotate(140, 60, 40)"/>
</g>
<circle id="circleP" cx="60" cy="40" r="10" stroke="black" stroke-width="2" fill="white"/>
</pattern>
</defs>
及部分相关JS:
function refresh(){
var slider1 = parseInt(document.getElementById("slider1").value);
document.getElementById("circleP").setAttribute("r", slider1)
}
function test() {
var values = [5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28];
var valueToUse = values[Math.floor(Math.random() * values.length)];
}
我的花也被一些看不见的线切断了。是 Chrome 的问题吗?
【问题讨论】:
-
在问题中输入代码时,请务必在代码块前后各留一个空行,否则将无法正确格式化为代码。
-
您是否也在其他浏览器中尝试过您的示例?它在 Firefox 和 Chrome 中看起来是一样的。
-
这是一个关于输入代码的非常有用的提示 - 我确实很努力地解决了它@JamesMontagne。
-
我在 IE 中尝试过 - 结果更糟@EricDahlstrom
标签: javascript svg