Spaces:
Running
Running
| const charts = {} | |
| function initBarChart() { | |
| if (charts.barChart) return | |
| charts.barChart = new Chart(document.getElementById('BarChart-slider'), { | |
| type: 'bar', | |
| data: { | |
| labels: ['q', 'w', 'e', 'r', 't', 'y'], | |
| datasets: [ | |
| { | |
| label: 'Dataset 1', | |
| data: [520, 760, 240, 433, 156, 380], | |
| backgroundColor: '#64bbf3', | |
| }, | |
| { | |
| label: 'Dataset 2', | |
| data: [450, 810, 370, 400, 215, 300], | |
| backgroundColor: '#ee6c71', | |
| }, | |
| ], | |
| }, | |
| options: { | |
| responsive: true, | |
| plugins: { | |
| legend: { | |
| position: 'top', | |
| }, | |
| title: { | |
| display: true, | |
| text: 'Chart.js Bar Chart', | |
| }, | |
| }, | |
| }, | |
| }) | |
| } | |
| function initLineChart() { | |
| if (charts.lineChart) return | |
| charts.lineChart = new Chart(document.getElementById('LineChart-slider'), { | |
| type: 'line', | |
| data: { | |
| labels: ['qq', 'w', 'e', 'r', 't', 'y'], | |
| datasets: [ | |
| { | |
| label: 'Dataset 1', | |
| data: [520, 760, 240, 433, 156, 380], | |
| backgroundColor: '#64bbf3', | |
| }, | |
| { | |
| label: 'Dataset 2', | |
| data: [450, 810, 370, 400, 215, 300], | |
| backgroundColor: '#ee6c71', | |
| }, | |
| ], | |
| }, | |
| options: { | |
| responsive: true, | |
| plugins: { | |
| title: { | |
| display: true, | |
| text: 'Chart.js Line Chart', | |
| }, | |
| }, | |
| }, | |
| }) | |
| } | |
| function initPieChart() { | |
| if (charts.pieChart) return | |
| charts.pieChart = new Chart(document.getElementById('PieChart-slider'), { | |
| type: 'pie', | |
| data: { | |
| labels: ['1', '2', '3'], | |
| datasets: [ | |
| { | |
| label: 'Dataset 1', | |
| data: [50, 15, 35], | |
| backgroundColor: ['#64bbf3', '#ee6c71', '#fecc4e'], | |
| }, | |
| ], | |
| }, | |
| options: { | |
| responsive: true, | |
| plugins: { | |
| legend: { | |
| labels: { | |
| boxWidth: 15, | |
| padding: 15, | |
| }, | |
| }, | |
| title: { | |
| display: true, | |
| text: 'Chart.js Pie Chart', | |
| }, | |
| }, | |
| }, | |
| }) | |
| } | |
| initBarChart() | |
| var swiperOnButton = new Swiper('.my-swiper-on-button', { | |
| loop: false, | |
| }) | |
| function onSlideChange() { | |
| const activeIndex = swiperOnButton.realIndex | |
| ;['barChart', 'lineChart', 'pieChart'].forEach((key) => { | |
| if (charts[key]) { | |
| charts[key].destroy() | |
| charts[key] = null | |
| } | |
| }) | |
| if (activeIndex === 0) initBarChart() | |
| if (activeIndex === 1) initLineChart() | |
| if (activeIndex === 2) initPieChart() | |
| } | |
| swiperOnButton.on('slideChange', onSlideChange) | |
| document.querySelectorAll('[data-slide-to]').forEach((button) => { | |
| button.addEventListener('click', () => { | |
| console.log( | |
| 'click', | |
| charts, | |
| button.getAttribute('data-slide-to'), | |
| parseInt(button.getAttribute('data-slide-to')) | |
| ) | |
| document.querySelectorAll('.swiper-button').forEach((btn) => { | |
| btn.classList.remove('active') | |
| }) | |
| button.classList.add('active') | |
| const index = parseInt(button.getAttribute('data-slide-to')) | |
| swiperOnButton.slideTo(index) | |
| setTimeout(() => { | |
| onSlideChange() | |
| }, 10) | |
| }) | |
| }) | |