| <!-- | |
| Licensed to the Apache Software Foundation (ASF) under one | |
| or more contributor license agreements. See the NOTICE file | |
| distributed with this work for additional information | |
| regarding copyright ownership. The ASF licenses this file | |
| to you under the Apache License, Version 2.0 (the | |
| "License"); you may not use this file except in compliance | |
| with the License. You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, | |
| software distributed under the License is distributed on an | |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| KIND, either express or implied. See the License for the | |
| specific language governing permissions and limitations | |
| under the License. | |
| --> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> | |
| <script src="lib/simpleRequire.js"></script> | |
| <script src="lib/config.js"></script> | |
| <script src="lib/jquery.min.js"></script> | |
| <script src="lib/facePrint.js"></script> | |
| <script src="lib/testHelper.js"></script> | |
| <link rel="stylesheet" href="lib/reset.css"> | |
| </head> | |
| <body> | |
| <style> | |
| html, body, #main { | |
| width: 100%; | |
| height: 100%; | |
| margin: 0; | |
| } | |
| .snapshot-rendered { | |
| position: absolute; | |
| right: 10px; | |
| top: 10px; | |
| width: 200px; | |
| height: 180px; | |
| background: #fff; | |
| border: 5px solid rgba(0,0,0,0.5); | |
| z-index: 100; | |
| } | |
| .snapshot-finished { | |
| position: absolute; | |
| right: 10px; | |
| bottom: 30px; | |
| width: 200px; | |
| height: 180px; | |
| background: #fff; | |
| border: 5px solid rgba(0,0,0,0.5); | |
| z-index: 100; | |
| } | |
| .snapshot-info { | |
| position: absolute; | |
| right: 10px; | |
| width: 200px; | |
| text-align: center; | |
| background: #333; | |
| color: #fff; | |
| padding: 2px 5px; | |
| font-size: 12px; | |
| z-index: 100; | |
| } | |
| .snapshot-info span { | |
| color: yellow; | |
| } | |
| .block-box { | |
| position: relative; | |
| } | |
| </style> | |
| <div class="block-box"> | |
| <div id="main0"></div> | |
| </div> | |
| <div class="block-box"> | |
| <div id="main1"></div> | |
| </div> | |
| <div class="block-box"> | |
| <div id="main2"></div> | |
| </div> | |
| <script> | |
| function enableSnapshot(chart, domId) { | |
| var chartDom = testHelper.getDom(domId); | |
| var snapshotRenderedDom = document.createElement('img'); | |
| snapshotRenderedDom.className = 'snapshot-rendered'; | |
| chartDom.parentNode.appendChild(snapshotRenderedDom); | |
| var snapshotFinishedDom = document.createElement('img'); | |
| snapshotFinishedDom.className = 'snapshot-finished'; | |
| chartDom.parentNode.appendChild(snapshotFinishedDom); | |
| var renderedInfoDom = document.createElement('div'); | |
| renderedInfoDom.className = 'snapshot-info'; | |
| chartDom.parentNode.appendChild(renderedInfoDom); | |
| renderedInfoDom.style.top = snapshotRenderedDom.offsetTop + snapshotRenderedDom.offsetHeight + 'px'; | |
| var finishedInfoDom = document.createElement('div'); | |
| finishedInfoDom.className = 'snapshot-info'; | |
| chartDom.parentNode.appendChild(finishedInfoDom); | |
| finishedInfoDom.style.top = snapshotFinishedDom.offsetTop + snapshotFinishedDom.offsetHeight + 'px'; | |
| chart.on('rendered', function () { | |
| var url = chart.getDataURL(); | |
| snapshotRenderedDom.src = url; | |
| renderedInfoDom.innerHTML = 'rendered triggered at <span>' + +new Date() + '</span>'; | |
| }); | |
| chart.on('finished', function () { | |
| var url = chart.getDataURL(); | |
| snapshotFinishedDom.src = url; | |
| finishedInfoDom.innerHTML = 'finished triggered at <span>' + +new Date() + '</span>'; | |
| }); | |
| } | |
| </script> | |
| <script> | |
| var chunkMax = 4; | |
| var chunkCount = 0; | |
| function genData1(len, offset) { | |
| var lngRange = [-10.781327, 131.48]; | |
| var latRange = [18.252847, 52.33]; | |
| var arr = new Float32Array(len * 2); | |
| var off = 0; | |
| for (var i = 0; i < len; i++) { | |
| var x = +Math.random() * 10; | |
| var y = +Math.sin(x) - x * (len % 2 ? 0.1 : -0.1) * Math.random() + (offset || 0) / 10; | |
| arr[off++] = x; | |
| arr[off++] = y; | |
| } | |
| return arr; | |
| } | |
| require(['echarts'], function (echarts) { | |
| var option = { | |
| tooltip: {}, | |
| toolbox: { | |
| left: 'center', | |
| feature: { | |
| dataZoom: {} | |
| } | |
| }, | |
| legend: { | |
| orient: 'vertical', | |
| left: 'left', | |
| data: ['pm2.5' /* ,'pm10' */] | |
| }, | |
| xAxis: [{ | |
| }], | |
| yAxis: [{ | |
| }], | |
| dataZoom: [{ | |
| type: 'inside' | |
| }, { | |
| type: 'slider' | |
| }], | |
| animation: false, | |
| series : [{ | |
| name: 'pm2.5', | |
| type: 'scatter', | |
| data: genData1(1e5), | |
| dimensions: ['x', 'y'], | |
| symbolSize: 3, | |
| itemStyle: { | |
| color: '#128de3', | |
| opacity: 0.4 | |
| }, | |
| large: true, | |
| largeThreshold: 500, | |
| progressive: 500 | |
| }] | |
| }; | |
| var chart = testHelper.create(echarts, 'main0', { | |
| title: [ | |
| 'finished should be triggered, and not repeatly', | |
| 'finished should not triggered before real finished' | |
| ], | |
| autoResize: false, | |
| option: option | |
| }); | |
| chart && enableSnapshot(chart, 'main0'); | |
| }); | |
| </script> | |
| <script> | |
| require(['echarts'], function (echarts) { | |
| var option = { | |
| legend: {}, | |
| animationDuration: 4000, | |
| animationDurationUpdate: 5500, | |
| dataset: { | |
| source: [ | |
| {name: 'a', value: 123}, | |
| {name: 'b', value: 456}, | |
| {name: 'should be selected', value: 789, selected: true} | |
| ] | |
| }, | |
| series: { | |
| type: 'pie', | |
| selectedMode: 'multiply' | |
| } | |
| }; | |
| var chart = testHelper.create(echarts, 'main1', { | |
| title: 'Check animation normal. \nfinished should be triggered, and not repeatly', | |
| option: option | |
| // info: option | |
| }); | |
| chart && enableSnapshot(chart, 'main1'); | |
| }); | |
| </script> | |
| <script> | |
| require(['echarts'], function (echarts) { | |
| var option = { | |
| legend: {}, | |
| tooltip: {}, | |
| xAxis: {}, | |
| yAxis: {}, | |
| dataset: [{ | |
| source: [ | |
| ['2012', null, '2013', null, '2014', 'amount'], | |
| [41.1, 2585, 30.4, 2473, 65.1, 3418], | |
| [86.5, 2316, 92.1, 3255, 85.7, 2485], | |
| [24.1, 1532, 67.2, 1452, 79.5, 4689], | |
| [55.2, 5312, 67.1, 3266, 69.2, 1354] | |
| ] | |
| }], | |
| series: [{ | |
| type: 'scatter' | |
| }, { | |
| type: 'scatter' | |
| }, { | |
| type: 'scatter' | |
| }] | |
| }; | |
| var chart = testHelper.create(echarts, 'main2', { | |
| title: 'setOption delay', | |
| option: option, | |
| lazyUpdate: true | |
| }); | |
| chart && enableSnapshot(chart, 'main2'); | |
| }); | |
| </script> | |
| </body> | |
| </html> |