javascript - 使用 Snap.svg 在 z 空间中移动 SVG 组

标签 javascript html svg raphael snap.svg

我正在使用 Snap.svg 使我的 SVG 元素具有交互性。

我如何移动 Element.group 我所有其他形状“前面”的形状组?此操作将发生悬停时。

这里有一个简单的 JSFiddle 示例:

http://jsfiddle.net/offmilk/b0av7jx6/

我试图让后面的两个圆圈悬停在前面。

我知道 Raphaël 以 Element.toFront() 的形式为单个元素提供类似的功能。两者的创建者都回答了一个类似的问题 here ,但我无法将他的解决方案添加到我的 hover 设置中。

预先感谢您的帮助!

最佳答案

我认为这取决于您是否介意更改实际的 SVG,或者您是否需要 SVG 保持原样(在这种情况下您将需要 CSS)。

正如您提到的 toFront(),我假设可以更改 SVG。

在这种情况下,您需要做的就是再次将元素追加到 paper/svg 上,它就会排到前面。

所以你可以写 s.追加(元素) 或者 this.paper.append( 元素 ) 如果您希望它成为适用于任何论文的函数。

在这个例子中,我会像下面这样写一个可重用的悬停函数......

function hoverOverFront() {
    this.paper.append( this );
    this.attr({ fill: 'green' });
}

function hoverOut() { 
    this.attr({ fill: 'black' });
};

back.hover( hoverOverFront, hoverOut ); 
front.hover( hoverOverFront, hoverOut );

jsfiddle

关于javascript - 使用 Snap.svg 在 z 空间中移动 SVG 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25623231/

相关文章:

javascript - 使 url 匹配 '/' 、 '/index' 和 '/index.html' 到单个状态

javascript - Youtube api 无法在 firefox 上加载

jquery - 多个 Jquery 插件不能同时工作并影响彼此的功能

html - CSS:绝对位置和相对位置

javascript - 使用 D3 和 d3.slider 显示 SVG 元素 : Uncaught ReferenceError: svg is not defined

android - 长 SVG Assets 文件错误 : R is not a valid verb. 路径位置 2 发生故障:STRING_TOO_LARGE

javascript - 使用 DontEnum 设置自定义属性

javascript - 到达 Controller 内部 $rootScope.$on 上的 Controller 范围

html - 我怎样才能像这样定位文本和图像?

css - 如何创建自定义导航栏 (WordPress)