Javascript Raphael js toFront()方法

Javascript Raphael js toFront()方法,javascript,svg,map,raphael,Javascript,Svg,Map,Raphael,我只是在用raphael.js来生成交互式svg地图,我想实现的有点像我从wikimedia下载的印度地图的例子,一切都很顺利,但我不明白为什么“to.front()”在我悬停任何状态时会使地图扭曲。这是因为SVg有故障还是与我的代码有关 这是我的一点代码 regions[i].mouseover(function (e) { this.node.style.fill = 'grey'; //this.glow({ color: "#555", width: 1

我只是在用raphael.js来生成交互式svg地图,我想实现的有点像我从wikimedia下载的印度地图的例子,一切都很顺利,但我不明白为什么“to.front()”在我悬停任何状态时会使地图扭曲。这是因为SVg有故障还是与我的代码有关

这是我的一点代码

regions[i].mouseover(function (e) {
        this.node.style.fill = 'grey';
        //this.glow({ color: "#555", width: 10 });
        //document.getElementById('region-name').innerHTML = this.data('region');
        this.toFront();
        this.attr({
            cursor: 'pointer',
            fill: '#990000',
            stroke: '#fff',
                'stroke-width': '2'
        });
    });
toFront()方法不会扭曲任何内容

发生的事情是,底层的“区域”是这样形成的,而其他的东西只是重叠在上面。如果你去掉其他东西,你会得到像

你真的想要

regions[i].mouseover(function (e) {...
或者将鼠标悬停在其他元素上


因此,它所做的正是它应该做的。如果您不希望发生这种情况,则需要要么将处理程序附加到某个区域,要么将处理程序附加到您希望它发生的元素。或者创建一个不同的匹配区域路径。

谢谢您的回复,但我希望有点像这样。那么,我需要做什么,改变我的SVG还是什么?抱歉,我没有让你明白,当它只是缩小时会发生什么,你会看到它的形状不是你想象的那样(假设我们谈论的是同一件事!)。你需要有一条路径,路径上的填充物正好是你想要放大的形状或其他任何东西。嗯,从编程角度来说,我无法做到这一点,我需要设计路径:(或其他东西)。是的,但是如果你很聪明,可能路径的一部分(边框)已经完成了(覆盖它的其他元素)这是可以结合起来的。这不是小事,但我想是有可能的。或者可能还有其他免费的svg映射。谢谢你的想法:)