• <menu id="w2i4a"></menu>
  • logo FusionCharts Suite XT入門教程

    文檔首頁>>FusionCharts Suite XT入門教程>>JavaScript圖表工具FusionCharts Suite XT入門教程(十六):使用Plain JS的特殊事件

    JavaScript圖表工具FusionCharts Suite XT入門教程(十六):使用Plain JS的特殊事件


    FusionCharts Suite XT是全面的跨平臺(tái)、跨瀏覽器JavaScript圖表套包,其中包括FusionCharts XTPowerCharts XT 、FusionWidgets XT 、FusionMaps XT。支持 ASP、 ASP.NET、 PHP、 JSP、 ColdFusion、 Ruby on Rails、 JavaScript、甚至簡單的HTML頁面。它是你值得信賴的JavaScript圖表解決方案,目前在全球有45萬用戶選擇Fusioncharts來制作專業(yè)的JavaScript圖表。

    JavaScript圖表工具,為什么選擇FusionCharts?點(diǎn)擊了解!

    點(diǎn)擊下載FusionCharts Suite XT最新試用版

    使用Plain JS的特殊事件

    FusionCharts Suite XT API提供了廣泛的事件,可用于觸發(fā)圖表生命周期中不同階段或與圖表交互時(shí)觸發(fā)不同階段的操作。例如,事件可用于在成功渲染圖表時(shí),在數(shù)據(jù)加載完成時(shí),單擊數(shù)據(jù)圖時(shí),鼠標(biāo)指針懸停在數(shù)據(jù)圖上時(shí)觸發(fā)事件,等等。

    本文重點(diǎn)介紹如何動(dòng)態(tài)拖動(dòng)列并將修改后的值顯示為文本。

    可拖動(dòng)的柱形圖如下所示:

    JavaScript圖表工具FusionCharts Suite XT入門教程(十六):使用Plain JS的特殊事件

    上面示例的完整代碼如下:

    import FusionCharts from 'fusioncharts';import Charts from 'fusioncharts/fusioncharts.charts';import FusionTheme from 'fusioncharts/themes/fusioncharts.theme.fusion';// Add the chart and theme as dependencyFusionCharts.addDep(Charts);FusionCharts.addDep(FusionTheme);// Create an Instance with chart optionsvar chartInstance = new FusionCharts({
        type: 'dragcolumn2d',
        height: '400',
        width: '700',
        dataFormat: 'json',
        renderAt: 'chart-container',
        dataSource: {
            "chart": {
                "caption": "Android and iOS Devices Sales Projections",
                "subCaption": "Drag the top of columns to adjust projections for 2017 & 2018",
                "numberPrefix": "$",
                "numberSuffix": "M",
                "yaxismaxvalue": "200",
                "theme": "fusion",
                "plotToolText": "<b>$label</b><br>$seriesName: <b>$dataValue</b>"
            },
            "categories": [{
                "category": [{
                    "label": "2014",
                    "fontItalic": "0"
                }, {
                    "label": "2015",
                    "fontItalic": "0"
                }, {
                    "label": "2016",
                    "fontItalic": "0"
                }, {
                    "label": "2017 (Projected)"
                }, {
                    "label": "2018 (Projected)"
                }]
            }],
            "dataset": [{
                "seriesname": "Android Devices",
                "data": [{
                    "value": "73",
                    "alpha": "100",
                    "allowDrag": "0"
                }, {
                    "value": "80",
                    "alpha": "100",
                    "allowDrag": "0"
                }, {
                    "value": "97",
                    "alpha": "100",
                    "allowDrag": "0"
                }, {
                    "value": "110",
                    "toolText": "<b>$label</b><br>$seriesName: <b>$dataValue</b>"
                }, {
                    "value": "180",
                    "toolText": "<b>$label</b><br>$seriesName: <b>$dataValue</b>"
                }]
            }, {
                "seriesname": "iOS Devices",
                "data": [{
                    "value": "63.2",
                    "alpha": "100",
                    "allowDrag": "0"
                }, {
                    "value": "68",
                    "alpha": "100",
                    "allowDrag": "0"
                }, {
                    "value": "82",
                    "alpha": "100",
                    "allowDrag": "0"
                }, {
                    "value": "99",
                    "toolText": "<b>$label</b><br>$seriesName: <b>$dataValue</b>"
                }, {
                    "value": "150",
                    "toolText": "<b>$label</b><br>$seriesName: <b>$dataValue</b>"
                }]
            }]
        },
        "events": {
            "beforeRender": function(e, d) {
                var message = "Drag any column for years 2017 or 2018 to see updated value along with the label";
                var customDiv = document.createElement('p');
                customDiv.innerText = message;
                customDiv.style.padding = "10px";
                customDiv.style.background = "rgb(245, 242, 240)";
                customDiv.style.textAlign = "center";
                customDiv.style.fontFamily = ""
                e.data.container.appendChild(customDiv);
                e.sender.addEventListener("dataplotdragend", function(event, args) {
                    var prev = FusionCharts.formatNumber(args.startValue.toFixed(2));
                    var curr = FusionCharts.formatNumber(args.endValue.toFixed(2));
                    var label = event.sender.args.dataSource.categories[0].category[args.dataIndex].label;
                    var eventMessage = '<b>' + args.datasetName + '</b> dataset, its previous value was <b>' + prev + '</b> and its current value is <b>' + curr + '</b> for year ' +
                        '<b>' + label + '</b>';
                    customDiv.innerHTML = eventMessage;
                });
            }
        }});// RenderchartInstance.render();

    上圖通過以下步驟呈現(xiàn):

    1、使用包括必要的庫和組件import。例如fusioncharts圖書館等

    2、將圖表和主題添加為依賴項(xiàng)。

    3、將圖表配置存儲(chǔ)在JSON對(duì)象中。在JSON對(duì)象中:

    • 將圖表類型設(shè)置為column2d。

    • 設(shè)置圖表的寬度和高度(以像素為單位)。

    • 將設(shè)置dataFormat為JSON。

    • 將json數(shù)據(jù)嵌入為的值dataSource。

    4、設(shè)置message隨圖表呈現(xiàn)一起顯示的。

    5、在上面的示例中:

    • 使用事件監(jiān)聽器進(jìn)行dataPlotDragEnd事件。

    • 使用該dragPlotDragEnd事件可顯示一條消息,其中包含已拖動(dòng)列的數(shù)據(jù)集,初始值和最終值。

    6、創(chuàng)建<div>元素以顯示消息。

    ====================================================

    想了解更多關(guān)于FusionCharts Suite XT資源,請(qǐng)點(diǎn)擊此處

    想要了解或者購買FusionCharts Suite XT正版授權(quán)的朋友歡迎咨詢慧都官方客服

    JavaScript圖表工具FusionCharts Suite XT入門教程(十六):使用Plain JS的特殊事件

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();