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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

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

CSS

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

Q&A

1回答

945閲覧

cssのtransformをjsで制御する方法を教えて頂きたいです

nyoro

総合スコア16

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/01/22 02:31

https://www.lotte.co.jp/entertainment/ghana-pinkvalentine/
このロッテのサイトなのですが、ウィンドウの読み込みが完了すると、女の子や背景やタイトルがフェイドインする動きになっています。
どのような記述になっているのか検証ツールで覗いてみたのですが、タイトルのみ抽出すると下記の記述がありました。

html

1<article id="hero"> 2 <h1><img src="assets/img/hero/title.png" alt="ピンクバレンタイン"></h1> 3</article>

css

1.load-complete #hero h1 { 2 opacity: 1 !important; 3 -webkit-transform: translate(0, 0) scale(1) rotate(0deg) !important; 4 transform: translate(0, 0) scale(1) rotate(0deg) !important; 5} 6 7#hero h1 { 8 -webkit-transition: opacity 0.2s linear,-webkit-transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275); 9 transition: opacity 0.2s linear,-webkit-transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275); 10 transition: opacity 0.2s linear,transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275); 11 transition: opacity 500ms linear 0s, transform cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s, -webkit-transform cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s; 12 -webkit-transition-delay: 0.5s; 13 transition-delay: 500ms; 14 opacity: 0; 15 -webkit-transform: scale(1.2); 16 transform: scale(1.2); 17}

transformtransitionを使用して動きを付けているのは分かりましたが、当然これをそのままローカルにコピペしても動きませんでした。
それではjsで制御しているのかと思い、読み込まれているmain.min.js?20200111の中身を全てコピペしてみたら無事に動きました。

そこで質問なのですが、これはjsのどのように記述で動いているのか教えて頂きたいです。
cssを見るに.load-completeという記述があるので、それ絡みかと思いjsで検索してみると、下記の記述が見つかりました。

js

1function p() { 2 t.classList.add("load-complete"); 3 const n = e ? .7 : .9; 4 l.setup({ 5 step: "article, section, #profile li", 6 offset: n, 7 once: !0 8 }).onStepEnter((function(t) { 9 t.element.classList.add("inviewed") 10 } 11 )) 12 }

浅学なためjsが分からないのですが、この部分のみをコピペしても動きませんでした。
私のjsの読解力がないのが最たる原因なのですが、動いているロジックだけでも教えて頂ければ幸いです。

宜しくお願い致します。

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

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

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

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

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

kei344

2020/01/22 08:21

まだ質問が「受付中」になっていますが、「ベストアンサー」を選び「解決済」にされてはいかがでしょうか。
guest

回答1

0

transitionは変化をアニメーションするものなので、変化がないとアニメーションしません。
なので、何かをトリガーにしてclass属性を変化させるなどする必要があります。

ご提示のJavaScriptは「呼び出されたときにclass属性を変化させる」というものなので、何かをトリガーにして呼び出してやらなくてはいけません。
この場合、ページが表示されたときにアニメーションするのですから、トリガーは「ページが表示されたとき」にするのがいいかと思います。
そういう機能を、JavaScriptで使うことができます。

DOMContentLoaded イベントは、最初の HTML 文書の読み込みと解析が完了したとき、スタイルシート、画像、サブフレームの読み込みが完了するのを待たずに発生します。

Window: DOMContentLoaded イベント - Web API | MDN

ということで、

js

1window.addEventListener('DOMContentLoaded', p);

とすればいいんじゃないかと思います。

投稿2020/01/22 03:23

Lhankor_Mhy

総合スコア36115

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

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

nyoro

2020/01/22 04:46

すいません、できました!ありがとうございます...!!この書き方だと動かなかったのですが、ロードして発火させるという発想から、ページを読み込んだらクラスを付与させるという書き方で出来ました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問