質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

0回答

1769閲覧

chart.js スクロール動作について

asaka0124

総合スコア0

スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

0クリップ

投稿2021/05/14 02:23

前提・実現したいこと

chart.jsで棒グラフを作成しました。
そこで、スクロールしたら起動するもの(グラフがにゅっと出てくる)
になったのですがこちらを繰り返したいのです。
現在は1回しか起動しないものになっています。
jsに慣れていないもので、調べたのですが解決できませんでしたので
どうかよろしくお願い致します。

該当のソースコード

// 棒グラフ var chartEl1 = document.getElementById("graph1"); var chartEl2 = document.getElementById("graph2"); var chartFlag1 = false; var chartFlag2 = false; // 1つ目のグラフ var chartFunc1 = function() { var ctx = chartEl1.getContext('2d'); ctx.canvas.height = 300; chart = new Chart(ctx, { type: 'bar', data: { labels: ["HTML5", "CSS3", "Sass", "Javascript", "PHP", "WordPress"], datasets: [{ label: "Programing level", backgroundColor: "rgba(0,73,163,0.6)", data: [20, 18, 15, 12, 5, 15] }] }, options: { legend: { labels: { fontColor: "#0049A3", fontSize: 14 } }, scales: { //縦軸の設定 yAxes: [{ //目盛りの設定 ticks: { //開始値を0にする beginAtZero: true, } }] } } }); }; // 2つ目のグラフ var chartFunc2 = function() { var ctx = chartEl2.getContext('2d'); ctx.canvas.height = 300; chart = new Chart(ctx, { type: 'bar', data: { labels: ["Photoshop", "Illustrator", "XD", "Dreamweaver", "VScode"], datasets: [{ label: "Tool level", backgroundColor: "rgba(0,73,163,0.6)", data: [13, 20, 15, 10, 18] }] }, options: { legend: { labels: { fontColor: "#0049A3", fontSize: 14 } }, scales: { //縦軸の設定 yAxes: [{ //目盛りの設定 ticks: { //開始値を0にする beginAtZero: true, } }] } } }); }; // スクロール処理 var graphAnim = function() { var wy = window.pageYOffset, wb = wy + screen.height - 400, // スクリーンの最下部位置を取得 // wb = wy + window.innerHeight, // ブラウザの最下部位置を取得 // チャートの位置を取得 chartElPos1 = wy + chartEl1.getBoundingClientRect().top, chartElPos2 = wy + chartEl2.getBoundingClientRect().top; // チャートの位置がウィンドウの最下部位置を超えたら起動 if ( wb > chartElPos1 && chartFlag1 == false ) { chartFunc1(); chartFlag1 = true; } if ( wb > chartElPos2 && chartFlag2 == false ) { chartFunc2(); chartFlag2 = true; } }; window.addEventListener('load', graphAnim); // 読み込み時の処理 window.addEventListener('scroll', graphAnim); // スクロール時の処理

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問