Highcharts翻译系列之十六:tooltip工具提示
tooltip工具提示

参数
 描述
 默认值
 
animation
 启用或禁用提示的动画。这对大数据量的图表很有用
 true
 
backgroundColor
 提示的背景色或者渐变色
 rgba(255 255,  255, 0.85)
 
borderColor
 提示的边框颜色
 auto
 
borderRadius
 边框圆角的半径
 5.0
 
borderWidth
 边框的宽度
 2.0
 
crosshairs
 显示十字线,把点和它们的轴值连接起来。十字线可以是Boolean,或者Boolean数组,或者是一个对象
 null
 
enabled
 启用或禁用提示
 true
 
footerFormat
 附加到提示格式的字符串
 null
 
formatter
 回调函数用来格式化提示的文本
 
 
positioner
 一个回调函数,用来在默认位置放置提示。
 null
 
shadow
 是否显示提示的下降阴影
 true
 
shared
 当提示是共享的,整个绘图区将捕获鼠标的移动。所有序列类型的排序数据的提示文本将会显示在一个气泡(提示框)中。
 false
 
snap
 图表或单个点的感应单元。不适合条状图、柱状图和饼图切片。对于鼠标供电设备的默认值时10,对于触摸设备的默认值时25。
 null
 
style
 提示的CSS样式。
 style: {color:'#333333',

fontSize: '9pt',

padding: '5px'}
 
useHTML
 是否使用HTML代替SVG来渲染提示的内容
 false
 
valueDecimals
 每个序列的y值显示多少小数位
 保存所有小数
 
valuePrefix
 附加到序列y值的前缀
 null
 
valueSuffix
 附加到序列y值的后缀
 null
 
xDateFormat
 如果x轴是时间轴,显示在提示头部的日期格式。
 基于每个点的最小距离的大约数

highcharts方面的知识很多:

http://api.highcharts.com/highcharts

http://www.highcharts.com/

http://www.52wulian.org/highcharts_api/

现在来看看我们项目中的需求吧,先明白需求才能改进啊。

当你移动到一个数据点的时候,tooltip自动提示相应的信息。但是项目中需要异步获取对此数据点的评论然后显示。

实现需求的步骤:

(0)API文档HighCharts结构如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
var chart = new Highcharts.Chart({
 
  chart: {…}        // 配置chart图表区
 
  colors: [{...}]    // 配置主体显示颜色(多个线条和柱体的颜色顺序的)
 
  credits: {…}      // 配置右下角版权链接
 
  exporting: {…}     // 配置导出及打印
 
  global: {…}       // HighCharts国际化方法调用
 
  labels: {…}       // HTML标签,可以放置在绘图的任何位置
 
  lang: {…}           // 语言对象属性配
 
  legend: {…}       // 配置图例选项
 
  loading: {…}         // 配置图表加载选项
 
  navigation: {…}   // 配置导出按钮属性
 
  pane: {…}           // 仅适用于极性图表和角仪表
 
  plotOptions: {…}  // 配置数据点选项
 
  series: [{...}]   // 配置数据列选项
 
  subtitle: {…}     // 配置副标题
 
  title: {…}        // 配置标题
 
  tooltip: {…}      // 配置数据点提示框
 
  xAxis: {…}        // 配置x轴选项
 
  yAxis: {…}        // 配置y轴选项
 
})

(1)研究tooltip相应的属性:

参数名 说明 默认值
enable 是否显示提示框 true
backgroundColor 设置提示框的背景色 “top”
borderColor 提示框边框颜色 “auto”
borderRadius 提示框圆角度/td> 5
style css样式

style: {
color: ‘#333333′,

fontSize: ’9pt’,
padding: ’5px’}

formatter

回调函数,用于格式化输出提示框的显示内容

返回的内容支持html标签如:<b>, <strong>,<br/>

 

主要的参数formatter:

1
2
3
4
formatter: function() {
                            return '<b>'this.series.name +'</b><br/>'+
                            Highcharts.dateFormat('%Y-%m-%d'this.x) +': 'this.y ;
                    }

这就是tooltip提示信息的内容。那要是直接把异步获取的信息的代码直接加到其中不就行了?

获取数据时异步的,tooltip中的formatter直接就返回值了,并没有等待异步加载的数据。

(2)既然直接向tooltip增加内容不可以,可以自己写一个div,然后显示评论信息,div然后随着数据点位置的改变而改变而改变位置。

highcharts的events只有click,mouseOver,mouseOut事件。

步骤:

(3)首先自己写个div

<div id="reporting"></div>

(4)div的样式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<style>
#reporting {
    position: absolute; 
    top: 35px; 
    right: 20px; 
text-align:left;
border:1px solid #c7bf93;
border-radius:4px;
-moz-border-radius:4px;
-webkit-border-radius:4px;
padding:6px 8px;
min-width:50px;
max-width:225px;
color:#000;
 
}
</style>

(5)重写 mouseOver(主要就是获取数据,并且显示),  mouseOut(隐藏div)事件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
mouseOver: function() {
                                                                        var itemPriceId2 = map1.get(this.series.name);
                                    var pointer = this;
                                    //var tooltip = pointer.series.tooltipPoints;
                                     
                                    $.post("<%=request.getContextPath()%>/calculator/listJsonCalComment.action"
                                          {itemid :itemPriceId2,type:'2', dataDate : Highcharts.dateFormat('%Y-%m-%d'this.x) }, 
                                          function(data){
                                            $("#reporting").html(data);
                                            var left = pointer.plotX-110;
                                            if(left <0){
                                                left =0;
                                            }
                                             $("#reporting").css("left",left + "px"); 
                                             $("#reporting").css("top",pointer.plotY+75 "px");
                                             $("#reporting").show();
                                        },'html');
                                },
                                mouseOut: function() {
                                                                        $("#reporting").hide();
                                     
                                }

注意:后获取数据点位置的时候,废了很大的劲,这方面的资料很少,只能自己研究highcharts的源码。

pointer.x是x轴的值,pointer.y是y轴的值,和位置并没有任何关系。

pointer.plotX,pointer.plotY是数据点的位置。本来一开始想获取tooltip的位置,搞了半天发现tooltip相应信息保存到tooltipPoints数组中,tooltipPoints是一个对象,里面保存了每一个数据点的tooltip提示信息的属性。难点是还需要研究index值是怎么来的,获取数据点相应的tooltip在tooltipPoints索引

(6)默认的div隐藏

1
2
3
4
$(document).ready(function() {
        //首先隐藏评论信息的显示区
        $("#reporting").hide();
});

好了,现在看看样子吧:

Highchart :tooltip工具提示的更多相关文章

  1. microtip Tooltip工具提示样式

    最近开发项目,想增加滑动提示文字,类似img alt和i的title,但是效果都不是很理想,当然jq也有,但是用起来比较繁琐,使用不是特别方便 于是在github上看到了一个不错的库: https:/ ...

  2. Bootstrap 标签页和工具提示插件

    一.标签页 标签页也就是通常所说的选项卡功能. //基本用法 <ul class="nav nav-tabs"> <li class="active&q ...

  3. 关于【bootstrap】中,【tooltip】的不算bug的bug的个人看法

    先说下遇到这个问题的背景吧. 就是在页面中有个div,这个div右上角(或者其他位置)有个 × 的图标(这个图标添加tooltip工具提示),光标移到这个图标时,触发tooltip,提示“点击移除”这 ...

  4. 第二百四十五节,Bootstrap标签页和工具提示插件

    Bootstrap标签页和工具提示插件 学习要点: 1.标签页 2.工具提示 本节课我们主要学习一下 Bootstrap 中的标签页和工具提示插件. 一.标签页选项卡 标签页也就是通常所说的选项卡功能 ...

  5. HighCharts/Highstock使用小结,使用汉化及中文帮助文档

       此文档是本人在开发过程图形报表时使用HighCharts所遇到的问题及解决方案 .最后附上有HighCharts中文帮助文档 HighCharts  版本:Highcharts-3.0.1 Hi ...

  6. 4_jquery

    官网:www.jquery.com 兼容: 1.jquery-3.1.0.js :form.attr("checked","false")无效 2.firefo ...

  7. jQuery基础课程

    环境搭建 搭建一个jQuery的开发环境非常方便,可以通过下列几个步骤进行. 下载jQuery文件库 在jQuery的官方网站(http://jquery.com)中,下载最新版本的jQuery文件库 ...

  8. jqueryUI 插件

    1,拖拽插件  draggable 拖拽插件draggable的功能是拖动被绑定的元素, 当这个jqueryUI插件与元素绑定后,可以通过调用draggable()方法,实现何种拖拽元素的效果 $(s ...

  9. 不就是抽个血吗,至于么-jQuery,Linux完结篇

    hi 趁着周一去抽血化验,真开心...下午报告才出来,不过早上来了就开始各种晕菜,叫错名字,说错话.....至于么.. 还有在教研室的30天就可以肥家了,凯森凯森.今天不想干活(哪天想干过我就问问), ...

随机推荐

  1. 正尝试在 OS 载入程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内执行托管代码,这样做会导致应用程序挂起。

    出错提示: 正尝试在 OS 载入程序锁内执行托管代码. 不要尝试在 DllMain 或映像初始化函数内执行托管代码,这样做会导致应用程序挂起. 原因分析: .NET2.0中添加了42种非常强大的调试助 ...

  2. 关于EF中ApplyCurrentValues和ApplyOriginalValues区别

    关于EF中ApplyCurrentValues和ApplyOriginalValues区别:两者都是编辑数据时使用. //        // 摘要:        //     将 System.D ...

  3. POJ 3616 DP

    题意:给你N的时间,M的工作时间段,每个时间段有一个权重,还有一个R,每次完成一个工作需要休息R,问最后在时间N内,最大权重是多少. 思路:很简单的DP,首先对区间的右坐标进行排序,然后直接转移方程就 ...

  4. android105 jni概念

    JNI(Java Native Interface,JAVA原生接口) ,通过JNIjava代码可以调用C代码,JNI在安卓中用的很多.安卓中的框架层就是用过JNI访问类库层的.Iphone是用C/C ...

  5. insert into ... on duplicate key update 与 replace 区别

    on duplicate key update:针对主健与唯一健,当插入值中的主健值与表中的主健值,若相同的主健值,就更新on duplicate key update 后面的指定的字段值,若没有相同 ...

  6. LINUX 系统备份

    系统备份是系统管理工作中十分重要的一个环切,本文详细介绍了各种Linux系统的备份方法,相信对大家的日常管理工作有所帮助. 备份是一项重要的工作,但是很多人没有去做.一旦由于使用不当造成数据丢失,备份 ...

  7. zTree下拉菜单多级菜单多选实现

    惯例,先上图: 这是在一个项目中,为了满足样式美观.多级菜单以及多选而将zTree插件更改过后的效果. 在实际的开发过程中,本来zTree也是可以满足需求的,但是zTree多选的话需要checkbox ...

  8. Java编程最差代码

    字符串连接误用 错误的写法:  String s = ""; for (Person p : persons) { s += ", " + p.getName( ...

  9. mac 终端中添加tree命令显示文件目录结构

      在Ubuntu下,通过 sudo apt-get install tree 可以使用tree命令,显示文件目录列表,如图所示: 在mac OS X系统下怎么使用呢? 在终端输入: cd $home ...

  10. iOS之layout方法-layoutSubviews、layoutIfNeeded、setNeedsLayout

    下面列举下iOS layout的相关方法: layoutSubviews layoutIfNeeded setNeedsLayout setNeedsDisplay drawRect sizeThat ...