当前位置:编程学习 > JAVA >>

Raphael hover事件使用

Raphael hover就是鼠标悬挺事件,我用Raphael绘制了图形后,希望hover时间被触发,并能显示该图形代表的意义。
假定c是一个circle对象,
 
        var context = {  
                    self: this,  
            circle: c,  
            point: pt,  
            lineRatio: line.ratio  
        };  
//      c.hover(this.onHoverNode, null, context, null);  
        c.hover(  
            (function(self, ctx) {  
            return function() {  
                self.onHoverNode(ctx);  
            };  
            }(this, context))  
        );  

 

 
这里没有使用Raphael中的icontext参数,我也想,可是不知道怎么用,上面注释掉的那一行就是我想用但没成功的。我还是用了闭包。这样context对象就做为参数传递进来了。不过对性能不太好,特别是circle对象很多的时候。然后在onHover函数中我获取了数据,并显示出来,具体代码和业务逻辑有关,下面仅供参考:
 
onHoverNode: function (context) {  
    var self = this;  
    var text = self.getTimeString(context.point.x) + ", " + context.point.y.toFixed(2) + "%";  
    if (!self.curText) {  
    self.curText = self.易做图.text(self.toX(self.minX) + self.width / 2 - 30,  
                       self.toY(self.minY) + 12,  
                       text).attr(self.node_font);  
    } else {  
    self.curText.attr('text', text);  
    }  
},  

 

 
Raphael的hover事件有个特性,就是this就是最初调用hover函数注册时间的那个对象。这点还是比较方便的。
 
补充:web前端 , JavaScript ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,