我为提出这个问题而道歉,但我只是在今天早上寻找一些指导。我只是想创建一个函数,这样我就可以通过传入该元素使Raphael元素发光。以下是我的代码。为什么这不起作用?
var paper = Raphael("playarea", 500, 500);
var rectangle = paper.rect(100, 100, 200, 200, 4);
function elemHover(var el)
{
el.hover(
// When the mouse comes over the object //
// Stock the created "glow" object in myCircle.g
function() {
this.g = this.glow({
color: "#0000EE",
width: 10,
opacity: 0.8
});
},
// When the mouse goes away //
// this.g was already created. Destroy it!
function() {
this.g.remove();
});
}
elemHover(rectangle);
答案 0 :(得分:2)
你应该fill
元素(在我们的例子中是矩形)来触发悬停。
rectangle.attr("fill", "red");
试试这个小提琴http://jsfiddle.net/aZG6C/17/
完整代码看起来像
<div id="playarea"></div>
<script type="text/javascript">
var paper = Raphael("playarea", 500, 500);
var rectangle = paper.rect(100, 100, 200, 200, 4);
function elemHover(el)
{
el.hover(
// When the mouse comes over the object //
// Stock the created "glow" object in myCircle.g
function() {
this.g = this.glow({
color: "#0000EE",
width: 10,
opacity: 0.8
});
},
// When the mouse goes away //
// this.g was already created. Destroy it!
function() {
this.g.remove();
});
}
rectangle.attr("fill", "red");
elemHover(rectangle);
</script>
<强>更新强>
仅当元素填充了某些内容时才会触发悬停事件。如果你想要一个透明元素,你可以尝试
rectangle.attr("fill", "transparent");
在这里查看小提琴http://jsfiddle.net/aZG6C/20/