检查底部元素将为您提供底部元素(沿 Z 轴) - 这是不希望的。考虑一种情况,其中元素的 Z 顺序被改变 - 可能是通过调用Element.toBack()
- 这将使检查完全无效。
相反,您可能希望通过迭代元素数组并检索特定类型的最后一个元素(例如circle)来寻求更语义化的方法。
Raphaël 还允许扩展内置函数集,因此我们可以将一个函数附加到 paper 元素上,仅用于此目的。下面的代码片段显示了一个这样的函数的例子,它从论文中返回传递类型的最后一个元素,或者false
如果没有找到这样的元素:
Raphael.fn.last = function(type) {
var element;
this.forEach(function(el) {
if (el.type == type) {
element = el;
}
});
return element || !!element;
};
请务必在纸质元素的任何实例化之前附加此功能。不仅仅是调用它,传递所需的元素类型:
var r = Raphael(paper, '100%', '100%');
// ...
// add elements etcetera
// ...
var lastCircle = r.last('circle');
请注意,对于建议的实现,这可能会导致繁重的操作 - 如果论文包含许多元素,但这里的目的是授予您功能扩展的概念,并启动思考过程。随意改进功能以提高其效率。