mxGraph浅入 之 Tooltip
mxGraph中对图元可以设置在鼠标移入时,显示自定义的提示文字
相关的源码文件:
./src/js/view/mxGraph.js ---> getTooltipForCell
./src/js/handler/mxToolTipHandler.js ,该文件中定义了一个封装了和提示信息设置相关的mxtTooltipHandler(graph, delay)类(第二个参数delay为鼠标移入显示提示信息的延迟时间,默认为500ms)
// 设置图形鼠标移入启动提示
// graph.tooltipHandler.setEnabled(true)
graph.setTooltips(true)
// 自定义提示
graph.getTooltipForCell = function(cell) {return "Hello tooltip"
}
graph.setToolTips(enabled)和graph.tooltipHandler.setEnabled(enabled)两者其实效果是一样的,因为实质上前者是调用了后者,源码如下:
mxGraph.prototype.setTooltips = function (enabled)
{this.tooltipHandler.setEnabled(enabled);
};
实现提示功能的本质是要将mxGraph实例的tooltipHandler属性的enbaled值设置为true,并且添加getTooltipForCell方法的实现,方法的返回值是自定义的要提示的内容,一般为字符串或DOM node。
提示框的默认样式为淡黄色填充,带阴影,黑色字,若是要自定义样式可以修改如下css文件
./src/css/common.css 和 explorer.css(实现兼容IE旧版本)文件中class属性名为mxTooltip的样式
demo
// toolTip.html<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Cell 的提示功能</title><script>mxBasePath = '../src';</script><script src="../src/js/mxClient.js"></script><script>function main(container){// 判断浏览器是否支持if (!mxClient.isBrowserSupported()){// mxUtils报错提示mxUtils.error('Browser is not supported!', 200, false);}else{// 在已有容器内构造一个graphvar graph = new mxGraph(container);// 设置图形可以被拖动graph.setEnabled(true); // 容器大小自适应 graph.setResizeContainer(true); // 允许改变元素大小 graph.setCellsResizable(true); // 设置图形鼠标移入启动提示// graph.tooltipHandler.setEnabled(true)graph.setTooltips(true)//预览时鼠标悬浮到节点时,改变鼠标样式graph.getCursorForCell = function (cell) {if (cell != null && cell.value != null && cell.vertex == 1) {return 'pointer';}};// 不自定义getTooltipForCell方法,则tooltip默认为cell的value值graph.getTooltipForCell = function(cell) {return "Hello tooltip"}// 在图形中创建默认组件 var parent = graph.getDefaultParent();// 开始往module里添加cellgraph.getModel().beginUpdate();try{var v1 = graph.insertVertex(parent, null, 'Tooltip1', 20, 20, 80, 30);console.log(v1)var v2 = graph.insertVertex(parent, null, 'Tooltip2', 200, 200, 80, 30);}finally{// 更新事务结束graph.getModel().endUpdate();}}};</script></head>
<body onload="main(document.getElementById('graphContainer'))"><div id="graphContainer"style="position:relative;overflow:hidden;width:321px;height:241px;background:url('editors/images/grid.gif');cursor:default;"></div>
</body>
</html>
效果:
mxGraph浅入 之 Tooltip相关推荐
- mxGraph浅入之 mxEditor
这次说一下mxGraph的核心类mxEditor,字面意思是编辑器,官方意思:一个继承自mxEventSource类,为了实现一个应用程序的.graph的包装器.该类的可以注册actions.结合mx ...
- [科普]浅入浅出Liunx Shellcode
创建时间:2008-05-13 文章属性:原创 文章提交: pr0cess (pr0cess_at_cnbct.org) 浅入浅出Liunx Shellcode /*---------------- ...
- 前端div里的内容下沉_自学Web前端的五个不同阶段,从浅入深
1.学习HTML,这是最简单,最基本的是要掌握div,formtable.Ulli.P.跨度.字体这些标签,这些都是最常用的,尤其是DIV和表格,DIV,表也可以用于布局,但不灵活,和用于基本表处理数 ...
- 浅入深出之Java集合框架(上)
Java中的集合框架(上) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到浅入深出之Java集合框架(下). ...
- 浅入深出之Java集合框架(中)
Java中的集合框架(中) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到浅入深出之Java集合框架(下). ...
- Angular浅入深出系列 - 写在前面
本系列目录: 写在前面 基础知识 控制器(Controller) 作用域(Scope) 集合(Collection) 模块(Module) 依赖注入(Dependency Injection) 服务( ...
- 浅入深出被人看扁的逻辑回归!
好像在各种机器学习入门教程中,逻辑回归模型(Logistic/Logit Regression)经常被拿来作为入门的机器学习模型,比如我家的Andrew Ng就是这样做的. 看起来,逻辑回归模型实在太 ...
- SegmentFault 技术周刊 Vol.16 - 浅入浅出 JavaScript 函数式编程
函数式编程(Functional Programming),一看这个词,简直就是学院派的典范. 以至于从 Lisp 的创世,到 Scheme.Haskell.Clean.Erlang.Miranda. ...
- 【TensorFlow】TensorFlow从浅入深系列之十三 -- 教你深入理解模型持久化(模型保存、模型加载)
本文是<TensorFlow从浅入深>系列之第13篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...
最新文章
- 老友记即将回归!用数据来重温经典剧情:老友记里到底说了多少次Oh my God?...
- Java8初体验(二)Stream语法详解(转)
- python的x 2是什么意思_python中startx是什么意思
- 在IE右键菜单,添加图片保存快捷方式
- PHP快速入门 如何操作MySQL
- poj2186 求有向图G中所有点都能到达的点的数量
- 2020年终总结一下吧
- 在Linux系统下防火墙开放所需要访问的端口号
- Python机器学习算法 — 逻辑回归(Logistic Regression)
- pl/sql developer导入导出
- OpenFOAM算例报错,浮点溢出错误,Floating point exception【汇总】
- Linux下删除mysql实例,linux下完全删除mysql
- 华为息屏显示鸿蒙系统动画,华为EMUI 11升级息屏UI和动画!升级点很像小米MIUI 12...
- 计算机论文的致谢部分写什么,毕业论文致谢部分怎么写-论文致谢部分如何写在线等请问毕业论文最后一部分致谢要怎么写呀. 爱问知识人...
- PHP如何实现网址伪静态
- android volley post 参数,带有标题和正文的Android Volley POST请求
- 全新版本的SoundSource for Mac 优质的音频控制软件
- linux基础篇(centeros)
- 北京朝阳行政区划(朝阳区街道行政区划) 用于shp数据转为geojson格式作为ECharts地图
- matlab里面fig文件坐标轴名称单位,MATLAB如何提取fig文件中的xyz坐标值