的形狀我發現了一個解決方案,http://bugs.dojotoolkit.org/ticket/10794工具提示,但它僅是爲道場1.4有一個簡單的方法來增加對dojox.gfx
的道場1.7版本,沒有dojox.gfx.tooltip 。 Plz ...
的形狀我發現了一個解決方案,http://bugs.dojotoolkit.org/ticket/10794工具提示,但它僅是爲道場1.4有一個簡單的方法來增加對dojox.gfx
的道場1.7版本,沒有dojox.gfx.tooltip 。 Plz ...
這是一個古老的問題,但經過高低搜索,我從來沒有找到答案,所以這裏是我製作工具提示在gfx形狀上顯示的內容。當HTML5 Canvas是渲染器時,它專門用於解決此問題,但應與其他渲染器一起使用。這是在Dojo和Dojox 1.8中完成的;還沒有在其他版本中嘗試過。
主要技巧是使用dijit.Tooltip的靜態show()和hide()方法,爲它們提供構建工具提示的信息,而不是製作dijit.Tooltip實例。 (dijit.Tooltip實例只會響應特定的DOM元素而被顯示,如果您使用的是canvas渲染器,則此功能將不起作用。)使用靜態方法,可以將渲染的工具提示放在任意位置以響應所需事件。您的主要任務是計算工具提示應顯示的位置,並確保綁定事件以隱藏()工具提示。
您可能希望存儲您自己的包含必要信息的自定義對象,以便手動顯示();這可以使你的工具提示管理更容易,如果你有很多。
Tooltip.show()需要如下:
有幾件事情實施這個時候要記住:
在該方法:
對於每個形狀或想要tooltipped基,附上對應時要顯示工具提示的事件;例如。 mouseenter,點擊,一些按鍵事件。此事件應該調用靜態方法Tooltip.show,並綁定相應的事件以便當時用Tooltip.hide關閉Tooltip。我還想在它觸發時立即斷開hide()事件;在dojo /你會做on.once(但據我所知你不能使用dojo/on的gfx形狀呢)。
var shape1Bb = shape1.getTransformedBoundingBox();
var shape1Tooltip = {
content: "<p>I am a black and gray rectangle.</p>",
around: {
x: shape1Bb[1].x+myCanvasContainer.offsetLeft,
y: shape1Bb[1].y-(Math.round((shape1Bb[1].y - shape1Bb[2].y)/2))+myCanvasContainer.offsetTop,
w: 1,
h: 1
},
position: ["after-centered","before-centered"]
};
shape1.connect("onmouseenter",function(e){
Tooltip.show(
shape1Tooltip.content,
shape1Tooltip.around,
shape1Tooltip.position
);
var mouseOutHandler = shape1.connect("onmouseout",function(e){
Tooltip.hide(shape1Tooltip.around);
dojo.disconnect(mouseOutHandler);
});
});
的jsfiddle:http://jsfiddle.net/XQyy2/