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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

スクロール

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

JavaScript

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

HTML

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

CSS

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

Q&A

解決済

1回答

1952閲覧

フラップアニメーションのanimation-delayがうまく作用しません。他、フラップについて2点の質問

_li____nu

総合スコア4

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

スクロール

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

JavaScript

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/08/05 07:13

先程も投稿させていただいたものと同じコードについて、
別途 わからない点がありましたので、投稿いたします。

ザ・ベストテンのパタパタとしたパネルの動きをwebサイトで使用したく、
Code Penからソースをコピーし、デザイン面で修正を加えています。
(参照元URL:https://codepen.io/jesusbotella/pen/opmRrO)

① 「AAA」と「BBB」のアニメーションのスピードに差をつけたいのですが、
data-animation-delay="1200ms" の部分を変えても作用しません。
足りない記述、誤った記述がありますでしょうか?

②スクロールをして、その場所に来たら、フラップのアニメーションが始まるようにするためには
どのような記述が必要でしょうか…?

③アニメーションが動いている間に、最終的に見せたい言葉以外のものを出させるには、
どうしたらよいでしょうか??
JSの以下の部分でそのように設定できていると思ったのですが、実際は、「AAA」と「BBB」が回っているアニメーションになってしまいます。

function makeid() {
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

当方初心者のため、質問もうまくできているか不安ですが、ご回答いただけましたら幸いです。
よろしくお願いします。

html

1<div class="splitflap-display"> 2<div class="split-flap" data-letter="AAA" data-animation-delay="1200ms"></div> 3<div class="split-flap" data-letter="BBB" data-animation-delay="2000ms"></div></div>

css

1@keyframes slidein { 2 from { 3 height: 0%; 4 } 5 6 to { 7 height: 100%; 8 } 9} 10 11.splitflap-display { 12 display: flex; 13 margin: 10px; 14 flex-wrap: wrap; 15 align-items: center; 16 height: 100%; 17 justify-content: center; 18 align-content: center; 19} 20 21.split-flap { 22 width: 100%; 23 height: 4vw; 24 border: 2px solid rgba(0, 0, 0, 0.2); 25 position: relative; 26 margin: 0 20px 20px 0; 27 font-size: 2vw; 28 line-height: 70px; 29 text-align: center; 30 box-sizing: border-box; 31 box-shadow: inset 2px 2px 0px 0px rgba(0, 0, 0, 0.5); 32 overflow: hidden; 33 position: relative; 34} 35 36.split-flap:after { 37 content: ' '; 38 width: 100%; 39 height: 2px; 40 background-color: rgba(0, 0, 0, 0.5); 41 position: absolute; 42 top: 50%; 43 left: 0%; 44 transform: translate3d(0, -50%, 0); 45} 46 47.split-flap:before { 48 content: attr(data-letter); 49 width: 100%; 50 height: 100%; 51 top: 50%; 52 left: 50%; 53 transform: translate3d(-50%, -50%, 0); 54 position: absolute; 55/* transition: height 100ms linear;*/ 56 animation-duration: 120ms; 57 animation-delay: attr(data-animation-delay); 58 animation-name: slidein; 59 animation-iteration-count: 6; 60 overflow: hidden; 61} 62 63/*.split-flap.is-changing:before { 64 height: 0; 65}*/

JS

1<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 2<script> 3function makeid() { 4 var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 5 6 return possible.charAt(Math.floor(Math.random() * possible.length)); 7} 8 9function randomTime(){ 10 return Math.round(Math.random() * 200 ); 11} 12function changeAnimationTime(element){ 13 var random = randomTime(); 14 element.setAttribute('animation-delay', random + "ms"); 15 16 console.log('animation-delay', random + "ms") 17} 18 19 20var mapFn = function(element) { 21 changeAnimationTime(element); 22 var i = 0; 23 var originalAttribute = element.getAttribute('data-letter'); 24 var test = [makeid(), makeid(), makeid(), makeid(), makeid(), originalAttribute]; 25 element.addEventListener("animationend", function() { 26 element.setAttribute('data-letter', originalAttribute); 27 }, false); 28 element.addEventListener("animationiteration", function() { 29 element.setAttribute('data-letter', test[i++]); 30 }, false); 31}; 32 33var changingElements = Array.from(document.querySelectorAll('[data-letter]'), mapFn); 34</script>

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

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

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

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

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

guest

回答1

0

ベストアンサー

手元の、Firefox と Chrome で試してみましたが、無効のようでした。

attr() 関数はどの CSS プロパティでも使用することができますが、 content 以外のプロパティでの対応は実験的であり、型や単位の引数の対応はまちまちです。

attr() - CSS: カスケーディングスタイルシート | MDN


Intersection Observer はいかがでしょう?

Intersection Observer API - Web API | MDN


ご提示のCodePenを見る限り、『「AAA」と「BBB」が回っているアニメーション』ではないようでした。

投稿2020/08/05 08:13

Lhankor_Mhy

総合スコア36960

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

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

_li____nu

2020/08/06 06:17

ご回答ありがとうございます! ① ご確認いただきありがとうございます。そうでしたか…別の方法を調べてみます。 ② 調べてみます! ③ ややこしい言い方をして申し訳ありません。  「AAA」には「第一位」という日本語が入り、「BBB」には、「デニムパンツ」と入ります。   CodePenでは1文字が回っていますが、そのwidthを広げて、長い単語がパタパタと回転して見えるようにしました。しかし、CodePenでは、「1」のパネルでも、アニメーションが止まるまでに「A」「B」などが出てきていて、そのようにしたい、ということでした。失礼しました。
Lhankor_Mhy

2020/08/06 06:21

ご提示のコードで試していますが、「アニメーションが止まるまでに「A」「B」などが出てきていて」という現象はきちんと起きているように見えました。
_li____nu

2020/08/06 09:43

ほんとですね。。。ありがとうございます。原因を考えてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問