我已经制作了一张SVG地图,我想让它在鼠标悬停时改变颜色并增加尺寸。我设法让颜色变化无问题地工作,但当我尝试缩放元素时,当我将鼠标悬停在它上面时,它完全消失了!
<g
style="fill:#999999"
id="newzealand"
onmouseover="this.setAttribute('transform', 'scale(2)');this.style.fill='#83b901';document.getElementById('countryText').textContent='New Zealand';"
onmouseout="this.style.fill='#999';document.getElementById('countryText').textContent='';"
>
<path
inkscape:connector-curvature="0"
id="path3034"
d="m 645,409.28571 -5,7.85715 -3.57143,2.85714 -2.5,5.71429 5.71429,1.42857 3.21428,-6.42857 0,-1.78572 2.14286,-0.71428 3.57143,-7.85715 z"
style="stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3036"
d="M 650.35714,411.07143 650,407.85714 l -1.78571,-2.14285 0.71428,-4.28572 -2.5,-6.78571 0,-1.42857 2.14286,2.85714 2.14286,2.5 2.85714,3.92857 2.14286,-1.78571 0,3.21428 -1.78572,2.14286 z"
style="stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
我也尝试过使用animate元素,但结果相同。它似乎与翻译和旋转工作正常。
答案 0 :(得分:4)
您的绘图不在原点,因此缩放时,它会从页面边缘消失。 m 645,409实际上变为1290,818。如果我们删除坐标的加倍,则图形保持在同一点。
<g
style="fill:#999999"
id="newzealand"
onmouseover="this.setAttribute('transform', 'translate(-645, -409) scale(2)');this.style.fill='#83b901';document.getElementById('countryText').textContent='New Zealand';"
onmouseout="this.style.fill='#999';document.getElementById('countryText').textContent='';"
>
<path
id="path3034"
d="m 645,409.28571 -5,7.85715 -3.57143,2.85714 -2.5,5.71429 5.71429,1.42857 3.21428,-6.42857 0,-1.78572 2.14286,-0.71428 3.57143,-7.85715 z"
style="stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path3036"
d="M 650.35714,411.07143 650,407.85714 l -1.78571,-2.14285 0.71428,-4.28572 -2.5,-6.78571 0,-1.42857 2.14286,2.85714 2.14286,2.5 2.85714,3.92857 2.14286,-1.78571 0,3.21428 -1.78572,2.14286 z"
style="stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>