gpt4 book ai didi

vuejs2 - 自定义 Chart.js 的工具提示

转载 作者:行者123 更新时间:2023-12-01 05:58:48 24 4
gpt4 key购买 nike

我正在使用 vue 的最新版本和 vue-chart.js .

我想自定义悬停点时显示的工具提示。

问题

工具提示与默认提示没有变化



如何自定义工具提示。最终,我希望能够单击工具提示中的链接以触发一个对话框,该对话框将显示从我的 vue 组件中包含的数据中获取的详细信息。

Vue.component('line-chart', {
extends: VueChartJs.Line,
mounted () {
this.renderChart({
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
datasets: [
{
label: 'Data One',
backgroundColor: '#f87979',
data: [40, 39, 10, 40, 39, 80, 40]

}
]
}, {
tooltips: {
custom: function(tooltipModel) {
// Tooltip Element
var tooltipEl = document.getElementById('chartjs-tooltip');

// Create element on first render
if (!tooltipEl) {
tooltipEl = document.createElement('div');
tooltipEl.id = 'chartjs-tooltip';
tooltipEl.innerHTML = "<table></table>"
document.body.appendChild(tooltipEl);
}

// Hide if no tooltip
if (tooltipModel.opacity === 0) {
tooltipEl.style.opacity = 0;
return;
}

// Set caret Position
tooltipEl.classList.remove('above', 'below', 'no-transform');
if (tooltipModel.yAlign) {
tooltipEl.classList.add(tooltipModel.yAlign);
} else {
tooltipEl.classList.add('no-transform');
}

function getBody(bodyItem) {
return bodyItem.lines;
}

// Set Text
if (tooltipModel.body) {
var titleLines = tooltipModel.title || [];
var bodyLines = tooltipModel.body.map(getBody);

var innerHtml = '<thead>';

titleLines.forEach(function(title) {
innerHtml += '<tr><th>' + title + '</th></tr>';
});
innerHtml += '</thead><tbody>';

bodyLines.forEach(function(body, i) {
var colors = tooltipModel.labelColors[i];
var style = 'background:' + colors.backgroundColor;
style += '; border-color:' + colors.borderColor;
style += '; border-width: 2px';
var span = '<span class="chartjs-tooltip-key" style="' + style + '"></span>';
innerHtml += '<tr><td>' + span + body + '</td></tr>';
});
innerHtml += '</tbody>';

var tableRoot = tooltipEl.querySelector('table');
tableRoot.innerHTML = innerHtml;
}

// `this` will be the overall tooltip
var position = this._chart.canvas.getBoundingClientRect();

// Display, position, and set styles for font
tooltipEl.style.opacity = 1;
tooltipEl.style.left = position.left + tooltipModel.caretX + 'px';
tooltipEl.style.top = position.top + tooltipModel.caretY + 'px';
tooltipEl.style.fontFamily = tooltipModel._fontFamily;
tooltipEl.style.fontSize = tooltipModel.fontSize;
tooltipEl.style.fontStyle = tooltipModel._fontStyle;
tooltipEl.style.padding = tooltipModel.yPadding + 'px ' + tooltipModel.xPadding + 'px';
}
},
responsive: true,
maintainAspectRatio: false
})
}

})

var vm = new Vue({
el: '.app',
data: {
message: 'Hello World'
}
})

https://codepen.io/anon/pen/ooyMMG

最佳答案

从 html= 中删除它

工具提示:{
添加这一行 = enabled:false,
自定义:功能(工具提示模型)

关于vuejs2 - 自定义 Chart.js 的工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47466742/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com