Chart.js/samples/tooltips/positioning-custom.html
Jukka Kurkela 913a01a3a6
Move title, tooltip and legend to options.plugins (#8089)
* Move title, tooltip and legend to options.plugins

* Update tooltip.md

* Update legend.md and title.md

* Add migration notes

* typo

* Types

* Restore plurals

* One more s, restore tabs

* All plugins disabled

* lint

* cc
2020-11-25 08:50:12 +02:00

99 lines
1.8 KiB
HTML

<!doctype html>
<html>
<head>
<title>Tooltip Interaction Modes</title>
<script src="../../dist/chart.min.js"></script>
<script src="../utils.js"></script>
<style>
canvas {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
}
.chart-container {
width: 500px;
margin-left: 40px;
margin-right: 40px;
margin-bottom: 40px;
}
.container {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
}
</style>
</head>
<body>
<div id="container" style="width: 75%;">
<canvas id="chart"></canvas>
</div>
<script>
window.onload = function() {
Chart.Tooltip.positioners.middle = (items) => {
if (items.length !== 1) {
// For more than 1 item, just show at the nearest
return Chart.Tooltip.positioners.average(items);
}
const el = items[0].element;
let xPos = 0;
let yPos = 0;
if (el && el.hasValue()) {
const {
base,
horizontal,
x,
y
} = el.getProps();
if (horizontal) {
xPos = (base + x) / 2;
yPos = y;
} else {
xPos = x;
yPos = (base + y) / 2;
}
}
return {
x: xPos,
y: yPos
};
};
var canvas = document.getElementById('chart');
new Chart(canvas, {
type: 'bar',
data: {
labels: ['January', 'February', 'March', 'April'],
datasets: [{
label: 'My First dataset',
borderColor: window.chartColors.red,
backgroundColor: window.chartColors.red,
data: [1, 1, 1, 1],
}, {
label: 'My Second dataset',
borderColor: window.chartColors.blue,
backgroundColor: window.chartColors.blue,
data: [2, 4, 6, 8],
}]
},
options: {
responsive: true,
plugins: {
tooltip: {
position: 'middle',
intersect: false,
}
}
}
});
};
</script>
</body>
</html>