Я использую ChartJS для отображения данных, но я хочу, чтобы анимация диаграммы отображалась до тех пор, пока она не станет видимой на экране пользователя. Я следил за сообщением на How to make the Chart.js animate when scrolled to that section?, но он не работает, когда я использую его с радарной диаграммой. Пример кода ниже, и у меня есть настройка холста как обычно, например. холст ID = "холст:ChartJS и анимация радарной диаграммы
var radarChartData = {
labels: ["x", "x", "x", "x", "x"],
datasets: [{
fillColor: "rgba(255, 97, 10, 0.5)",
strokeColor: "rgb(255, 97, 10)",
pointColor: "rgba(255, 255, 255, 1)",
pointStrokeColor: "rgba(255, 255, 255, 1)",
data: [48, 46, 47, 48, 38]
}]
}
var inView = false;
function isScrolledIntoView(elem) {
var docViewTop = $(window).scrollTop();
var docViewBottom = docViewTop + $(window).height();
var elemTop = $(elem).offset().top;
var elemBottom = elemTop + $(elem).height();
return ((elemTop <= docViewBottom) && (elemBottom >= docViewTop));
}
$(window).scroll(function() {
if (isScrolledIntoView('#canvas')) {
if (inView) {
return;
}
inView = true;
newChart(document.getElementById("canvas").getContext("2d")).Radar(radarChartData, {
scaleShowLabels: false,
scaleShowLabelBackdrop: false,
scaleFontColor: "#fff",
pointLabelFontSize: 14,
pointLabelFontColor: "#fff",
angleLineColor: "rgba(163, 165, 93,0.8)",
scaleLineColor: "rgba(163, 165, 93,0.5)"
});
} else {
inView = false;
}
});
просто замечание, где вы говорите 'newChart' , должно ли это быть «новой диаграммой»? –