Javascript 拉斐尔的托夫罗?
我希望一个元素只在悬停时出现在前面,然后返回到我鼠标离开时的z索引。在拉斐尔,我有没有办法做到这一点;在调用toFront之前保存元素的当前z索引,然后再次应用它?简短的回答是,否。这是因为SVG不依赖z索引属性来确定元素的呈现顺序——它只是使用它们在SVG文档中出现的顺序(所谓的“画师顺序”——从后到前)。为了复制相同的内容,您需要在当前元素之前记录项目,将目标对象移动到悬停元素列表的末尾,然后将其移动到其上一个同级位置之后的原始位置。凌乱而复杂,没有内置的支持 较长的答案是你真的不需要。在大多数情况下,您只需使用以下技巧即可逃脱:Javascript 拉斐尔的托夫罗?,javascript,raphael,Javascript,Raphael,我希望一个元素只在悬停时出现在前面,然后返回到我鼠标离开时的z索引。在拉斐尔,我有没有办法做到这一点;在调用toFront之前保存元素的当前z索引,然后再次应用它?简短的回答是,否。这是因为SVG不依赖z索引属性来确定元素的呈现顺序——它只是使用它们在SVG文档中出现的顺序(所谓的“画师顺序”——从后到前)。为了复制相同的内容,您需要在当前元素之前记录项目,将目标对象移动到悬停元素列表的末尾,然后将其移动到其上一个同级位置之后的原始位置。凌乱而复杂,没有内置的支持 较长的答案是你真的不需要。在大
el.hover( function()
{
var duplicated_node = this.clone();
duplicated_node.hover( function() {}, function()
{
this.remove();
} );
duplicated_node.toFront();
}, function() {} );
换句话说,你
a) 克隆对象;
b) 向克隆添加一个悬停函数,悬停结束时将其删除;
c) 将克隆移动到前面。由于它将共享原始的位置,其悬停事件将立即触发
这不是一个完全干净的解决方案,但它比尝试重新排列元素以重新创建特定的顺序要好(更简单、更高效)——特别是如果您有很多元素。简单的答案是,不需要。这是因为SVG不依赖于z-index属性来确定元素呈现顺序——它只是使用它们在SVG文档中出现的顺序(所谓的“画家顺序”——从后到前)。为了复制相同的内容,您需要在当前元素之前记录项目,将目标对象移动到悬停元素列表的末尾,然后将其移动到其上一个同级位置之后的原始位置。凌乱而复杂,没有内置的支持
较长的答案是你真的不需要。在大多数情况下,您只需使用以下技巧即可逃脱:
el.hover( function()
{
var duplicated_node = this.clone();
duplicated_node.hover( function() {}, function()
{
this.remove();
} );
duplicated_node.toFront();
}, function() {} );
换句话说,你
a) 克隆对象;
b) 向克隆添加一个悬停函数,悬停结束时将其删除;
c) 将克隆移动到前面。由于它将共享原始的位置,其悬停事件将立即触发
这不是一个完全干净的解决方案,但它比尝试重新排列元素以重新创建特定的顺序要好(更简单、更高效),特别是如果您有很多元素。嗨,凯文,您认为您的解决方案可以应用于这种情况吗?我希望单击的路径始终位于tophi kevin上,您认为您的解决方案可以应用于这种情况吗?我希望单击的路径始终位于顶部