Spaces:
Running
Running
<!-- | |
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"> | |
<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> | |
<meta name="viewport" content="width=device-width, initial-scale=1" /> | |
<!-- <link rel="stylesheet" href="lib/reset.css"> --> | |
</head> | |
<body> | |
<style> | |
* { | |
/* Test tooltip trigger */ | |
pointer-events: auto ; | |
} | |
html { | |
position: static; | |
} | |
body { | |
position: static; | |
background: #ffe; | |
} | |
.chart { | |
position: relative; | |
width: 500px; | |
height: 300px; | |
border: 10px solid rgba(0,0,0,0.5); | |
margin: 30px auto 30px auto; | |
} | |
.try-box { | |
position: relative; | |
background: green; | |
padding: 0; | |
border-width: 0; | |
line-height: 1; | |
text-align: center; | |
font-size: 12px; | |
color: yellow; | |
/* box-sizing: content-box; */ | |
} | |
.try-box-check { | |
position: absolute; | |
background: grey; | |
padding: 0; | |
border-width: 0; | |
line-height: 1; | |
text-align: center; | |
font-size: 12px; | |
} | |
.try-coord-marker { | |
position: absolute; | |
background: red; | |
width: 0; height: 0; | |
/* width: 5px; height: 5px; */ | |
} | |
.pointer-marker { | |
position: absolute; | |
width: 6px; | |
height: 6px; | |
margin: -3px 0 0 -3px; | |
padding: 0; | |
background: orange; | |
} | |
</style> | |
<div | |
style=" | |
position: fixed; left: 10px; bottom: 10px; color: red; padding: 2px; | |
font-size: 20px; border: 1px solid red; background: #fff; z-index: 999"> | |
Also need test pinch | |
</div> | |
<div id="allCharts" style="margin: 30px;"> | |
<div data-ec-title="css transform 2d" class="chart" id="main0" | |
style=" | |
transform: scale(0.5, 0.5) rotate(15deg); | |
"> | |
</div> | |
<div data-ec-title="css transform 3d" style="perspective: 171px;"> | |
<div class="chart" id="main1" | |
style=" | |
transform: translate(100px) rotateY(18deg) rotateX(12deg); | |
transform-style: preserve-3d; | |
"> | |
</div> | |
</div> | |
<div style="height: 300px;width: 10px;"></div> | |
<div style=" | |
transform: scale(0.7, 0.7) rotate(75deg); | |
"> | |
<div style="perspective: 271px;"> | |
<div data-ec-title="nested transform" class="chart" id="main2" | |
style=" | |
transform: scale3d(1, -1.5, 1) rotateY(-28deg) rotateZ(-32deg); | |
transform-style: preserve-3d; | |
"> | |
</div> | |
</div> | |
</div> | |
<div style="height: 400px;width: 10px;"></div> | |
<div style=" | |
perspective: 231px; | |
"> | |
<canvas data-ec-title="Not support iOS (pre-create a canvas)" class="chart" id="main3" | |
style=" | |
transform: translateX(140px) rotateX(28deg) rotateZ(12deg); | |
transform-style: preserve-3d; | |
"> | |
</canvas> | |
</div> | |
</idv> | |
<script> | |
function $createOption(title) { | |
var xAxisData = []; | |
var data1 = []; | |
var data2 = []; | |
var data3 = []; | |
var bigTooltipBound = 10; | |
for (var i = 0; i < 50; i++) { | |
xAxisData.push('类目' + i); | |
data1.push(+(Math.random() + 0.5).toFixed(3)); | |
data2.push(+(Math.random() + 0.5).toFixed(3)); | |
data3.push(+(Math.random() + 0.5).toFixed(3)); | |
} | |
function getSymbolSize(value, param) { | |
if (param.dataIndex <= bigTooltipBound) { | |
return 30; | |
} | |
return 10; | |
} | |
var itemStyle = { | |
normal: { | |
borderColor: 'white', | |
borderWidth: 3, | |
lineStyle: { | |
width: 1 | |
} | |
} | |
}; | |
return { | |
backgroundColor: '#eee', | |
title: { | |
text: title || '' | |
}, | |
legend: { | |
data: ['line', 'line2', 'line3'], | |
itemWidth: 50, | |
itemHeight: 40, | |
right: 50, | |
bottom: 0 | |
}, | |
visualMap: null, // 用于测试 option 中含有null的情况。 | |
tooltip: { | |
trigger: 'axis', | |
// set enterable as false to check coord of event triggered by tooltip. | |
enterable: false, | |
axisPointer: { | |
type: 'cross' | |
}, | |
formatter: function () { | |
return [ | |
'<div>', | |
'Move inside the tooltip<br>', | |
'The original interactions of<br>', | |
'the chart under the tooltip <br>', | |
'should be normally triggered.<br>', | |
'That means the coord of <br>', | |
'the event <br>', | |
'triggered by tooltip<br>', | |
'is correct<br>', | |
'----<br>', | |
'----<br>', | |
'</div>' | |
].join(''); | |
}, | |
position: function (point, params, dom, rect, size) { | |
var viewSize = size.viewSize; | |
var contentSize = size.contentSize; | |
return [ | |
viewSize[0] - contentSize[0], | |
viewSize[1] - contentSize[1], | |
]; | |
} | |
}, | |
xAxis: { | |
data: xAxisData, | |
boundaryGap: false, | |
splitArea: { | |
show: false | |
}, | |
splitLine: { | |
show: false | |
} | |
}, | |
grid: { | |
left: '10%', | |
right: 2, | |
bottom: 100 | |
}, | |
yAxis: { | |
splitArea: { | |
show: true | |
} | |
}, | |
dataZoom: [{ | |
type: 'inside', | |
start: 10, | |
end: 30 | |
}, { | |
type: 'slider', | |
bottom: 40 | |
}], | |
series: [{ | |
name: 'line', | |
type: 'line', | |
stack: 'all', | |
symbol: 'circle', | |
symbolSize: getSymbolSize, | |
data: data1, | |
itemStyle: itemStyle, | |
step: 'end' | |
}, { | |
name: 'line2', | |
type: 'line', | |
stack: 'all', | |
symbol: 'circle', | |
symbolSize: getSymbolSize, | |
data: data2, | |
itemStyle: itemStyle, | |
step: 'end' | |
}, { | |
name: 'line3', | |
type: 'line', | |
stack: 'all', | |
symbol: 'triangle', | |
symbolSize: getSymbolSize, | |
data: data3, | |
itemStyle: itemStyle, | |
step: 'end' | |
}] | |
}; | |
} | |
</script> | |
<script> | |
initCharts(); | |
function initCharts() { | |
var allCharts = document.getElementById('allCharts'); | |
allCharts.style.display = 'block'; | |
function addEventListener(chart) { | |
chart.getZr().on('click', function (e) { | |
console.log('zr e.offsetX e.offsetY', e.offsetX, e.offsetY); | |
facePrint({'zr-e-offsetX': e.offsetX, 'zr-e-offsetY': e.offsetY}); | |
}); | |
} | |
require([ | |
'echarts' | |
], function (echarts) { | |
var el = document.getElementById('main0'); | |
if (!el) { | |
return; | |
} | |
var chart = echarts.init(el); | |
addEventListener(chart); | |
chart.setOption($createOption(el.getAttribute('data-ec-title'))); | |
}); | |
require([ | |
'echarts' | |
], function (echarts) { | |
var el = document.getElementById('main1'); | |
if (!el) { | |
return; | |
} | |
var chart = echarts.init(el, null, { | |
}); | |
addEventListener(chart); | |
chart.setOption($createOption(el.getAttribute('data-ec-title'))); | |
}); | |
require([ | |
'echarts' | |
], function (echarts) { | |
var el = document.getElementById('main2'); | |
if (!el) { | |
return; | |
} | |
var chart = echarts.init(el, null, { | |
}); | |
addEventListener(chart); | |
chart.setOption($createOption(el.getAttribute('data-ec-title'))); | |
}); | |
require([ | |
'echarts' | |
], function (echarts) { | |
var canvasEl = document.getElementById('main3'); | |
if (!canvasEl) { | |
return; | |
} | |
var chart = echarts.init(canvasEl, null, { | |
devicePixelRatio: 2, | |
// FIXME: weird | |
width: canvasEl.offsetWidth, | |
height: canvasEl.offsetHeight | |
}); | |
addEventListener(chart); | |
chart.setOption($createOption(canvasEl.getAttribute('data-ec-title'))); | |
}); | |
} | |
</script> | |
</body> | |
</html> |