How to integrate Chart.js into Webflow and display the chart on a subpage?

TL;DR
  • Set up a Webflow project and add Chart.js script in the Project Settings under the Custom Code tab.
  • Design the page structure with a Div Block, add a canvas using "Embed Element," and give the Div Block an ID.
  • Initialize and display the chart using a JavaScript snippet added to the Before Body Tag section, and publish the site to see changes.

Integrating Chart.js into Webflow allows you to display interactive data visualizations on your website. This can be done by following some straightforward steps.

1. Create a Webflow Project

  • Set up a new project or open an existing one in Webflow.
  • Ensure you have a subpage created where you want the chart to be displayed.

2. Add a Script for Chart.js

  • Go to Project Settings in Webflow.
  • Click on the Custom Code tab.
  • In the Head Code section, add the following line to load Chart.js:

  ```html

  <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

  ```

  • Save changes before leaving the settings.

3. Design the Subpage Structure

  • Navigate to Designer and open the desired subpage.
  • Drag and drop a 'Div Block' onto your page where the chart will be displayed.
  • Give the Div Block an ID, for example, "myChartContainer."

4. Embed Chart.js Code

  • Go to the Add Element panel and drop a Embed Element inside the Div Block.
  • Use the following code in the embed:

  ```html

  <canvas id="myChart" width="400" height="400"></canvas>

  ```

  • Save and Close to ensure the changes are applied.

5. Initialize and Display the Chart

  • In the same Custom Code settings tab or the Before Body Tag section for the subpage, add the script to initialize your chart (modify it according to your data):

  ```html

  <script>

    document.addEventListener("DOMContentLoaded", function() {

      var ctx = document.getElementById('myChart').getContext('2d');

      var myChart = new Chart(ctx, {

        type: 'bar', // change to 'line', 'pie', etc. as needed

        data: {

          labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],

          datasets: [{

            label: '# of Votes',

            data: [12, 19, 3, 5, 2, 3],

            backgroundColor: [

              'rgba(255, 99, 132, 0.2)',

              'rgba(54, 162, 235, 0.2)',

              'rgba(255, 206, 86, 0.2)',

              'rgba(75, 192, 192, 0.2)',

              'rgba(153, 102, 255, 0.2)',

              'rgba(255, 159, 64, 0.2)'

            ],

            borderColor: [

              'rgba(255, 99, 132, 1)',

              'rgba(54, 162, 235, 1)',

              'rgba(255, 206, 86, 1)',

              'rgba(75, 192, 192, 1)',

              'rgba(153, 102, 255, 1)',

              'rgba(255, 159, 64, 1)'

            ],

            borderWidth: 1

          }]

        },

        options: {

          scales: {

            y: {

              beginAtZero: true

            }

          }

        }

      });

    });

  </script>

  ```

  • Publish your site to visualize any JS changes, as Webflow doesn’t render them in the preview mode.

Summary

To integrate Chart.js into your Webflow project, add its script to the head of your project settings, set up a canvas for the chart within the Designer, and then initialize the chart using custom JavaScript before the body tag or within the page settings.

Rate this answer

Other Webflow Questions