Я пытаюсь изменить внешний вид легенды, удалив эффект strikethrough
без использования функции legendCallback
в chart.js.Причина, по которой я не хочу использовать функцию legendCallback
, потому что у меня есть свои собственные настройки в chart.options.legend.onClick
.следовательно, если я использую legendCallback
, я не смогу использовать chart.options.legend.onClick
.
после тщательного изучения источника Chart.js
, я узнаю, что внутри функции рисования Chart.Legend
ониприменяют эффект strikethrough
.
Вот ссылка на plugin.legend.js
, а вот фрагмент кода, который применяет стиль
var fillText = function(x, y, legendItem, textWidth) {
var halfFontSize = fontSize / 2;
var xLeft = boxWidth + halfFontSize + x;
var yMiddle = y + halfFontSize;
ctx.fillText(legendItem.text, xLeft, yMiddle);
if (legendItem.hidden) {
// Strikethrough the text if hidden
ctx.beginPath();
ctx.lineWidth = 2;
ctx.moveTo(xLeft, yMiddle);
ctx.lineTo(xLeft + textWidth, yMiddle);
ctx.stroke();
}
};
Я хочу знать, как мы сможем изменить поведение strikethrough
, просто применив эффект исчезновения, когда легенда не активна или скрыта.
во время поиска решения, с которым я столкнулсяэто codepen , где некоторые пытались переопределить функциональность, но, к сожалению, теперь он работает правильно с chart.js version 2.7.3
Ссылка на моя скрипка