国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

google chart顯示全部頂點(diǎn)的tooltip

2024-04-27 13:52:44
字體:
供稿:網(wǎng)友

IE9部分瀏覽器支持svg繪圖,修改了獲取路徑的方法。由于IE得到的path信息會多一些空格出來,改為用正則獲取頂點(diǎn)信息
 

  今天在csdn看到一個(gè)使用google chart繪制LineChart圖標(biāo),需要提示顯示全部顯示出來,而不是當(dāng)鼠標(biāo)懸浮到頂點(diǎn)的時(shí)候才顯示提示信息tooltip。
 

  下午看了下google chart的api文檔,沒有發(fā)現(xiàn)有顯示全部提示信息的配置項(xiàng)目,隱藏提示信息tooltip的配置項(xiàng)目到是有一個(gè): tooltip:{trigger:'none'},trigger默認(rèn)有2個(gè)配置值,一個(gè)是'none',不顯示tooltip;一個(gè)是hover,鼠標(biāo)移動到頂點(diǎn)的時(shí)候顯示。
 

  研究了下google chart生成的HTML結(jié)構(gòu)后,google chart將canvas或者vml繪制在一個(gè)iframe里面。
 

  解決方法:獲取iframe里面的vml或者canvas的曲線圖路徑配置,然后使用js+div模擬。canvas為path,IE為v:shape對象【有多個(gè),需要遍歷對象數(shù)組獲取到繪制的路徑對象。】
 

  源代碼如下,下面代碼自己保存為html文件查看,運(yùn)行代碼加載google chart api時(shí)出錯。

<html>  <head>    <script type="text/javascript" src="https://www.google.com/jsapi"></script>    <style type="text/css">    .pop{border:solid 1px #000;width:100px;height:50px;position:absolute;z-index:10000}/*可以增加背景圖片什么的美化一下tooltip*/    </style>    <script type="text/javascript">        google.load("visualization", "1", { packages: ["corechart"] });        google.setOnLoadCallback(drawChart);        var chart, canvas, data = [['Year', 'Sales'], ['2004', 1000], ['2005', 1170], ['2006', 660], ['2007', 1030]];        function getPath() {            var doc = document.getElementById('chart_div').getElementsByTagName('iframe')[0].contentWindow.document;            if (doc.readyState == 'complete') {                clearInterval(window.timer);                var vml = doc.body.innerHTML.toLowerCase().indexOf('<svg')==-1, line = doc.getElementsByTagName(vml ? 'shape' : 'path');                if (vml) {                    for (var i = 0, j = line.length; i < j; i++)                        if (line[i].getAttribute('logicalname') == 'line#0') { line = line[i]; break; }                }                else line = line[0];                drawTooltip(vml ? line.path.value : line.getAttribute('d'));            }        }        function drawTooltip(p) {            var points = p.match(//d+(/./d+)?/g), pop, dv = document.getElementById('chart_div'), idx = 1,dataItem;            for (var i = 0, j = points.length; i < j; i += 2) {                pop = document.createElement('div');                pop.className = 'pop';                pop.style.left = points[i] + 'px';                pop.style.top = points[i + 1] + 'px';                dataItem = data[idx];                idx++;                pop.innerHTML = 'Year:' + dataItem[0]+'<br/>'+dataItem[1];                dv.appendChild(pop);            }        }        function drawChart() {            var data = google.visualization.arrayToDataTable(window.data);            var options = { title: 'Company Performance', tooltip: {trigger:'none'} };            chart = new google.visualization.LineChart(document.getElementById('chart_div'));            chart.draw(data, options);            // google.visualization.events.addListener(chart, 'ready', function () {});//IE不觸發(fā)ready事件,只好用計(jì)時(shí)器來檢查iframe的readystate了            window.timer = setInterval(getPath, 500);        }    </script>  </head>  <body>    <div id="chart_div" style="width: 900px; height: 500px;position:relative;"></div>  </body></html>
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东明县| 荣成市| 藁城市| 巩义市| 甘洛县| 肃南| 阿克陶县| 文化| 揭阳市| 天台县| 加查县| 和平县| 平邑县| 惠来县| 库尔勒市| 樟树市| 平南县| 延长县| 双江| 松原市| 句容市| 苍山县| 海伦市| 扶沟县| 闵行区| 赤城县| 民乐县| 林周县| 望城县| 香河县| 筠连县| 句容市| 新野县| 大庆市| 拉萨市| 长治县| 长岭县| 昂仁县| 萨嘎县| 大丰市| 中西区|