Flex Custom Tooltip

<?xml version="1.0" encoding="utf-8"?>
<mx:Application horizontalAlign="center" 
verticalAlign="middle" 
xmlns:mx="http://www.adobe.com/2006/mxml" 
layout="horizontal" horizontalGap="15" 
viewSourceURL="srcview/index.html">

<mx:Script>
<![CDATA[
import mx.controls.Text;
import mx.managers.ToolTipManager;
import mx.controls.ToolTip;

private var myToolTip:ToolTip;

private function showToolTipRight(evt:MouseEvent, text:String):void
{
var pt:Point = new Point(evt.currentTarget.x, evt.currentTarget.y);

// Convert the targets 'local' coordinates to 'global' -- this fixes the
// tooltips positioning within containers.
pt = evt.currentTarget.parent.contentToGlobal(pt);

myToolTip = ToolTipManager.createToolTip(text, pt.x, pt.y, "errorTipRight") as ToolTip;
myToolTip.setStyle("borderColor", "#417B0D"); 
myToolTip.setStyle("color", "white");

// Move the tooltip to the right of the target
var xOffset:int = evt.currentTarget.width + 5;//(myToolTip.width - evt.currentTarget.width) / 2;
myToolTip.x += xOffset; 
}

private function showToolTipAbove(evt:MouseEvent, text:String):void
{
var pt:Point = new Point(evt.currentTarget.x, evt.currentTarget.y);

// Convert the targets 'local' coordinates to 'global' -- this fixes the
// tooltips positioning within containers.
pt = evt.currentTarget.parent.contentToGlobal(pt);

myToolTip = ToolTipManager.createToolTip(text, pt.x, pt.y, "errorTipAbove") as ToolTip;
myToolTip.setStyle("borderColor", "#ff6600");
myToolTip.setStyle("color", "white");

// Move tooltip below target and add some padding
var yOffset:int = myToolTip.height + 5;
myToolTip.y -= yOffset; 
}

private function showToolTipBelow(evt:MouseEvent, text:String):void
{

var pt:Point = new Point(evt.currentTarget.x, evt.currentTarget.y);

// Convert the targets 'local' coordinates to 'global' -- this fixes the
// tooltips positioning within containers.
pt = evt.currentTarget.parent.contentToGlobal(pt);

myToolTip = ToolTipManager.createToolTip(text, pt.x, pt.y, "errorTipBelow") as ToolTip;
myToolTip.setStyle("borderColor", "black");
myToolTip.setStyle("color", "white");

// Move tooltip below the target
var yOffset:int = evt.currentTarget.height + 5;
myToolTip.y += yOffset; 
}

// Remove the tooltip
private function killToolTip():void
{
ToolTipManager.destroyToolTip(myToolTip);
}

]]>
</mx:Script>

<mx:Button label="Orange" mouseOver="showToolTipAbove(event, 'Tooltip above')" mouseOut="killToolTip()"/>

<mx:Panel title="Panel Tooltip" height="100" width="150" layout="vertical" verticalAlign="middle" horizontalAlign="center">
<mx:Button label="Black" mouseOver="showToolTipBelow(event, 'Tooltip below')" mouseOut="killToolTip()" />
</mx:Panel>

<mx:VBox>
<mx:Button label="Green" mouseOver="showToolTipRight(event, 'Tooltip to the right')" mouseOut="killToolTip()"/>
</mx:VBox>

</mx:Application>

1.定义ToolTip

转载于:https://my.oschina.net/u/258944/blog/118387

### 自定义 ECharts Tooltip 背景图片的方法 在 ECharts 中,可以通过 `tooltip` 的 `className` 属性来指定一个 CSS 类名,并通过该类名为 Tooltip 提示框设置自定义样式。以下是具体实现方式: #### 设置 Tooltip 的 HTML 渲染模式 为了支持更复杂的 DOM 结构和样式控制,需将 `renderMode` 设置为 `"html"` 并启用 `appendToBody`[^1]。 ```javascript tooltip: { renderMode: "html", appendToBody: true, className: 'custom-tooltip', formatter: function (params) { return `<div class="tooltip-content">${params.name}: ${params.value}</div>`; } } ``` #### 定义 CSS 样式 通过 `.custom-tooltip` 类名,在外部样式表或 `<style>` 标签中定义背景图片及相关属性[^2]。 ```css .custom-tooltip { padding: 0 !important; border: none !important; background-color: transparent !important; background: url('path/to/your/image.png') center center no-repeat; background-size: cover; /* 或者使用具体的尺寸 */ width: 3.9rem; height: 3.9rem; color: #fff; display: flex; align-items: center; justify-content: start; } .tooltip-content { margin: 0.5rem; font-size: 0.8rem; } ``` #### 注意事项 - **路径问题**:确保背景图片的路径正确无误。如果图片位于项目目录下,请提供相对路径;如果是网络资源,则可以直接写 URL 地址。 - **优先级冲突**:某些默认样式可能覆盖自定义样式,因此建议使用 `!important` 来提高样式的优先级。 - **跨域限制**:当背景图来自其他域名时,可能会遇到跨域问题。此时需要确认目标服务器允许 CORS 请求。 以上方法可以成功为 ECharts 的 Tooltip 添加自定义背景图片并调整其显示效果。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值