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

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

新規登録して質問してみよう
ただいま回答率
85.31%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1438閲覧

「要素が見えたタイミング」でグラフが伸びるアニメーションを実装したい

maki_oden

総合スコア10

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/01/30 10:26

編集2020/01/30 11:05

【目標】
「要素が見えたタイミングで、左から右へとグラフが伸びるアニメーション」を作ろうとしています。

【解決したいこと】
左から右へグラフが伸びるアニメーション自体は成立していますが
「要素が見えたタイミングで」という条件がクリアできていません。この条件を解決したいです。

【現状】
要素が見えたタイミングを解決するために「jquery.inview.js」を取り入れてみましたが
上手く動作させられていません。

【現在のコード】

js

1<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" type="text/javascript"></script> 2<script src="jquery.inview.js" type="text/javascript"></script> 3<script type="text/javascript"> 4 //.graphが画面内に入ったら.animeを付与 5 $('.graph').on('inview', function() { 6  $(this).addClass("anime"); 7 }); 8</script>

「jquery.inview.js」を使用して画面内に入った時に「.graph」へ「.anime」を付与する方法を考えています。

html

1 2 <!--スクロールのための余白部分--> 3 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> 4 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> 5 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> 6 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> 7 8 <div class="graph"> 9 <span class="block bar-01"> 10 </span> 11 <span class="block bar-02"> 12 </span> 13 </div>

CSS

1body {background-color: #272b34;} 2 3@keyframes expand { 4 from {width: 0%;} 5 to {width: 100%;} 6} 7.graph.anime{ 8 width: 0%; 9 animation: expand 1.5s ease forwards; 10} 11.block { 12 display: block; 13 height: 100px; 14 float: left; 15} 16.bar-01{width: 40%; background: #334D5C;} 17.bar-02{width: 20%; background: #45B29D;}

「animation:expand」を指定して、@keyframesで横幅を伸ばし
グラフをアニメーションさせようと考えていますが、jsで「.anime」を付与すると動作しなくなってしまいます。

「要素が見えたタイミング」という前提でなければ、棒が伸びるというアニメーション自体は動作します。
(jsを使用せず、上記CSSの「.graph.anime」が「.graph」となった状態では動作する)

「要素が見えたらアニメーション開始」を実現する方法を
ご教授いただければと思います。どうぞよろしくお願い致します!

以下コンソールのスクショです(上crome 下firefox)
コンソールのキャプチャイメージ説明

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

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

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

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

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

maki_oden

2020/01/30 11:01

crome,firefoxで確認しましたがエラーは出ていませんでした。
guest

回答1

0

ベストアンサー

これでも同じでしょうか?

js

1$( function() { 2 $('.graph').on('inview', function() { 3  $(this).addClass("anime"); 4 }); 5});

投稿2020/01/30 11:04

kei344

総合スコア69625

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

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

maki_oden

2020/01/30 11:08

!!!!! ありがとうございます!! いただいたjsに書き換えたところ、見事に動作しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問