Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
交互式SVG-如何选择对鼠标悬停动作作出反应的元素?_Svg_Ecmascript 5_Batik - Fatal编程技术网

交互式SVG-如何选择对鼠标悬停动作作出反应的元素?

交互式SVG-如何选择对鼠标悬停动作作出反应的元素?,svg,ecmascript-5,batik,Svg,Ecmascript 5,Batik,我正在尝试制作一个交互式SVG,它可以对不同的用户操作(鼠标悬停、单击等)做出反应。我正在使用JavaBatik,但只要您描述一下如何用XML解决我的问题就足够了 点击功能对我来说很好。问题在于悬停(鼠标悬停在动作上)。我的代码如下所示: svgRoot.setAttributeNS(null, "onmouseover", "evt.target.setAttribute('opacity', '0.5');"); svgRoot.setAttributeNS(null, "onmouseou

我正在尝试制作一个交互式SVG,它可以对不同的用户操作(鼠标悬停、单击等)做出反应。我正在使用JavaBatik,但只要您描述一下如何用XML解决我的问题就足够了

点击功能对我来说很好。问题在于悬停(鼠标悬停在动作上)。我的代码如下所示:

svgRoot.setAttributeNS(null, "onmouseover", "evt.target.setAttribute('opacity', '0.5');");
svgRoot.setAttributeNS(null, "onmouseout", "evt.target.setAttribute('opacity', '1');");
svgRoot是整个.svg文件的根节点。所有其他元素都附加到它。将鼠标悬停在我的svq上时,只有当前元素是透明的(例如,文本元素或我当前鼠标光标所在的某个矩形)。但是,我希望整个svg是透明的(所有元素)。我认为这可以通过将此操作附加到根元素来实现,但它不是

我还有一个名为“script.js”的外部ECMAscript文件,它链接到我创建的每个svg,所以我也可以在这个脚本中编程,但我不确定如何编程


谢谢你的提示。

假设我们有一个圆圈,上面有
onmouseover
onmouseout
触发器:

纯JS中的myOpacity()函数:-

function myOpacity(op_value) 
{
  myCircle = document.getElementById('mycircle');
  myCircle.setAttribute('opacity', op_value);
}
注意:您也可以尝试使用
onmousedown
onmouseup
触发器