Удалите эффект затухания цвета фона во всплывающей подсказке при наведении курсора

#jquery #css #chart.js #chartjs-2.6.0

Вопрос:

При наведении курсора мыши на всплывающую подсказку цвет фона исчезает при перемещении мыши из всплывающей подсказки. Любая помощь будет очень признательна.

Я пытаюсь понять, какой код создает этот странный эффект. Я перепробовал почти все возможные решения.

Спасибо 🙂

Вот код, который я использовал для выравнивания правой стороны метки:

   Chart.Tooltip.prototype.drawBody = function(pt, vm, ctx) {
    var bodyFontSize = vm.bodyFontSize;
    var bodySpacing = vm.bodySpacing;
    var bodyAlign = vm._bodyAlign;
    var body = vm.body;
    var xLinePadding = 0;
    var textColor;

    ctx.textAlign = bodyAlign;
    ctx.textBaseline = 'top';
    ctx.font = Chart.helpers.fontString(bodyFontSize, vm._bodyFontStyle, vm._bodyFontFamily);

    pt.x = getAlignedX(vm, bodyAlign);
    // Before Body
    var fillLineOfText = function(line) {
        let cols = line.split(':');
        if (bodyAlign == 'left' amp;amp; cols.length > 1) {
            line = cols.slice(0, cols.length-1).join(':')   '';
            let rightText = cols.slice(-1);
            ctx.textAlign = 'right';
            let x = getAlignedX(vm, 'right');
            ctx.fillText(rightText, x, pt.y);
            ctx.textAlign = 'left';
        }
        ctx.fillText(line, pt.x   xLinePadding, pt.y);
        pt.y  = bodyFontSize   bodySpacing;
    };

    // Draw body lines now
    Chart.helpers.each(body, function(bodyItem, i) {
        textColor = vm.labelTextColors[i];
        ctx.fillStyle = textColor;

        Chart.helpers.each(bodyItem.lines, function(line) {
            fillLineOfText(line);
        });
    });

    // After body lines
    Chart.helpers.each(vm.afterBody, fillLineOfText);
    pt.y -= bodySpacing; // Remove last body spacing */
}
 

Вот код для диаграммы js:

 var chart = new Chart(ctx, {
    // The type of chart we want to create
    type: 'bar',
    responsive: true,

    // The data for our dataset
    data: {
        labels: {!! json_encode($labelsArray) !!},
        datasets: [
            {
                label: 'Time',
                fill: true,
                data: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""],
                backgroundColor: gradient,
                hoverBackgroundColor: gradient,
            }
        ]
    },

    border: 'none',
    borderColor: 'transparent',
    borderJoinStyle: 'none',

    // Configuration options go here
    options: {

        responsive: true,
        cutoutPercentage: 0,
        maintainAspectRatio: false,
        hover: {
            mode: 'nearest',
            intersect: true
        },
        tooltips: {
            position: "average",
            fullWidth: true,
            bodyFontSize: 9.5,
            displayColors: false,
            backgroundColor: '#2E323B',
            bodyFontFamily: 'SFUI-Medium',
            titleMarginBottom: 2,
            xAlign: 'center',
            yAlign: 'bottom',
            bodyFontStyle: 'bold',
            callbacks: {
                label: function (tooltipItem, data) {
                    if (tooltipItem.yLabel >= 460) {
                        chart.options.tooltips.yAlign = 'top'
                    } else {
                        chart.options.tooltips.yAlign = 'bottom'
                    }
                    var data = chartTooltipData[tooltipItem.xLabel];

                    if (data == undefined) {
                        return [
                            'Reaction : '   tooltipItem.yLabel   ' ms'
                        ];
                    }
                        $('.test-list ul li.active h3.heavy').text().trim() == 'VISUAL DIGITAL SPAN') {
                        return [
                            'Intensity : '   data.intensity,
                            'Accuracy : '   data.accuracy   ' %',
                            'Reaction : '   parseInt(data.reaction)   ' ms',
                          
                        ]
                    } else {
                        return [
                            'Intensity : '   data.intensity,
                            'Accuracy : '   data.accuracy   ' %',
                            
                        ]
                    }
                },
                title: function() {
                    return '';
                }
            }
        },
        layout: {
                    padding: {
                        top: 50,
                        bottom: 20,
                    }
                },
        
        legend: {
            display: false
        },
        scales: {
            xAxes: [{
                ticks: {
                    display: false,
                    fontSize: 16,
                },
                barPercentage: 1.5,
                scaleLineColor: 'transparent',
                categoryPercentage: 0.2,
                radius: 50,
                gridLines: {
                    display: false,
                    drawOnChartArea: false,
                    drawBorder: false
                }
            }],
            yAxes: [{
                ticks: {
                    beginAtZero: true,
                    stepSize: 150,
                    fontFamily: 'SFUI-Medium',
                    fontColor: '#9ba1a7',
                    fontSize: 12,
                    scaleFontSize: 12,
                    fontStyle: 600,
                    max: 900,
                    callback: function (value, index, values) {
                        return ' '   value   ' ms'
                    }
                },
                gridLines: {
                    borderDash: [2, 3],
                    color: '#5d6268',
                    lineWidth: 0.3,
                    zeroLineColor: 'transparent'
                }
            }]
        }
    }
});