🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

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

jQuery

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

Q&A

解決済

1回答

1451閲覧

scrollファンクションの中でanimateメソッドが動かない

Silky

総合スコア34

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2019/09/20 13:24

jQueryを使用して、スクロールして可視化領域に入ったら、animateメソッドでアニメーションをつけつつ文字の色を変えたいです。

しかし、下記のコードがスクロール位置に関するif文の中で動きません。
何故、動かないのでしょうか?

$(this).animate({ 'color':'red' },1000);

下記は動きますが、やはり上記のようなアニメーションがほしいです。

$(this).css('color','red');

コードは下記の通りとなります。

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>test</title> <style> body { font-size: 30px; } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> </head> <body> <div class="elem"> <pre> Lorem ipsum dolor sit amet, cu vel hinc velit, vel nobis accusam deleniti no. No qui numquam voluptatum comprehensam, fuisset offendit pertinax ut est. Ex usu idque pericula, has an legere prodesset delicatissimi. Qui eu legere dictas appellantur, ex vel mentitum perpetua suscipiantur, ne cum mediocrem assueverit. Dissentias dissentiet nam in, temporibus ullamcorper id nec, ad nostrum probatus vituperatoribus vix. Est idque veritus offendit in, at tantas aperiam laboramus vis. Ei has solum periculis assentior, libris voluptatibus no pri. Vix cu debet regione, vim odio zril ex. Nam te quas impedit, ex facete docendi efficiantur mei. At soluta omnium sit, solum partiendo ullamcorper id mea. Porro elaboraret eu nam. Duo adhuc aperiri minimum ut, case quando doming pro at, laudem option id mea. Usu mucius facete cetero cu, ius at omnis tibique recusabo. Ut pro brute accusamus, moderatius accommodare usu ex, dicat petentium expetenda no sea. Eu est liber delenit ponderum, dicam adolescens no nam. Quod labore viderer cu his. Impetus pertinacia id est, cum an case nonumy propriae, vitae dicunt qui eu. Eos justo virtute an, at simul iuvaret repudiandae pro, nec nobis intellegat voluptatum ne. Ex ullum option fabellas vim. Decore dictas conceptam et qui. Per at verear dolorum blandit, ad ferri semper complectitur sit, qui et probatus consetetur. Nostrum voluptua in his, usu adipisci conceptam in. </pre> //上記を6回HTMLに直書きして、スクロール可能なページの長さにしています。(文字制限のため省略します) </div> <script src="js/animation.js"></script> </body> </html>
$(function(){ $(window).on('scroll', function (){ var elem = $('.elem'); elem.each(function () { var elemOffset = $(this).offset().top; var scrollPos = $(window).scrollTop(); var wh = $(window).height(); if(scrollPos > elemOffset - wh + (wh / 2) ){ //↓動かない $(this).animate({ 'color':'red' },1000); //↓動く // $(this).css('color','red'); } }); }); });

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

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

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

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

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

guest

回答1

0

ベストアンサー

【色でハマったanimate()関数の使い方 - Qiita】
https://qiita.com/n_s_y_m/items/538b2fcd079019471db3#何にハマったのか

リファレンスをよく読めば書いてあったのですが、

animate()は数値型の値をとらない属性(background-colorなど)に対応していませんでした。
ドキュメントはよく読もう(反省)。

【.animate() | jQuery API Documentation】
https://api.jquery.com/animate/#animation-properties

投稿2019/09/20 14:11

kei344

総合スコア69596

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

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

Silky

2019/09/20 14:28

「そもそも数値型の値をとらない属性(backgroundColorなど)には、animate関数は対応していません。」 なるほど、APIはよく読まないとですね。。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問