以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 SVG/GML/VRML/X3D/XAML 』  (http://bbs.xml.org.cn/list.asp?boardid=21)
----  一个奇怪的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=21&rootid=&id=9550)


--  作者:xfecczgh
--  发布时间:8/25/2004 11:32:00 AM

--  一个奇怪的问题
代码如下:
<svg>

<script type="text/javascript">
<![CDATA[
var redVal=0;
var greenVal=0;
var blueVal=0;

function changeColor(evt)
{
   var targetshape = evt.getTarget();
   redVal = Math.round(Math.random()*255);
   greenVal = Math.round(Math.random()*255);
   blueVal = Math.round(Math.random()*255);
   targetshape.setAttribute("fill","rgb(" + redVal + "," + greenVal + "," + blueVal + ")");
  
}
// ]]>
</script>

<g onclick="changeColor(evt)">
 <circle cx="200" cy="200" r="100" fill="blue" />
 <rect x="100" y="100" width="200" height="20" fill="red"/>
</g>

</svg>

为什么鼠标点击时两个图形的颜色不同时改变
怎样让两个图形同时改变颜色?

[此贴子已经被作者于2004-8-25 16:42:40编辑过]

--  作者:xfecczgh
--  发布时间:8/27/2004 10:05:00 PM

--  
本人已解决这个问题,让大家共享
<svg>
  <def>
    <set xlink:href="#c1" attributeName="fill" to="blue" begin="c1.click;c2.click"/>
    <set xlink:href="#c2" attributeName="fill" to="green" begin="c1.click;c2.click"/>
  </def>

  <circle id="c1" cx="200" cy="200" r="50" fill="red"/>
  <circle id="c2" cx="300" cy="300" r="50" fill="red"/>
</svg>


--  作者:liuhyan
--  发布时间:9/7/2004 7:59:00 PM

--  
这是应为你调用的是鼠标单击事件,而鼠标单击事件只能被一个元素对象捕获,如果你的<g>中内容固定,可以对每一个对象setAttribute("color",“”)
--  作者:turing_gu
--  发布时间:9/8/2004 12:08:00 PM

--  
这个办法真不错
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
1,000.000ms