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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

スクロール

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

JavaScript

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

HTML

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

CSS

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

Q&A

1回答

2545閲覧

iOSでCSSアニメーションが動かない

tmp-user

総合スコア44

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

スクロール

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

JavaScript

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2021/11/30 14:06

初心者です。

HTMLとCSSとJavaScriptを使って、スクロールで対象要素の座標に来た際に、
要素がスライドで流れてくるアニメーションを作りたいのですが、
何故かiOSではアニメーションが動かず、
少しスクロールすると、画面がガタッ!と変に動くような挙動をします。

safari・chromeともに同様の動きなのですが、
なんの設定が必要、もしくは一般的にどのように記述すればよいのでしょう。

アニメーション部のみ、別のCSSファイルにて設定し、
jQueryで最後に読み込むと良いという情報を見たので、それも試しましたが
うまくいきませんでした。
参考にしたサイト
https://makoblog.net/wordpress/2020-10-331.html

HTML

1 <script src="https://code.jquery.com/jquery-1.11.1.min.js"></script> 23 <div class="right-to-left">aaaaaaaaaaaaaaa</div> 45 <script> 6 $(function () { 7 var style = 8 '<link rel="stylesheet" type="text/css" media="all" href="./anime.css" />'; 9 $("head link:last").after(style); 10 }); 11 </script>

css

1/* ____________________ */ 2/* anime.css */ 3.is-animated { 4 opacity: 1; 5 animation: slideIna 3s cubic-bezier(0.25, 1, 0.5, 1) 1 forwards; 6 perspective: 1000; 7} 8 9@keyframes slideIna { 10 0% { 11 transform: translateX(180px); 12 opacity: 0; 13 -webkit-transition: -webkit-transform all 3s; 14 } 15 100% { 16 transform: translateX(0); 17 } 18 40%, 19 100% { 20 opacity: 1; 21 -webkit-transition: -webkit-transform all 3s; 22 } 23} 24 25/* スライド */ 26.right-to-left { 27 display: block; 28 opacity: 1; 29 animation: right-to-left 3s cubic-bezier(0.25, 1, 0.5, 1) 1 forwards; 30 perspective: 1000; 31} 32 33@keyframes right-to-left { 34 0% { 35 transform: translateX(180px); 36 opacity: 0; 37 } 38 100% { 39 transform: translateX(0); 40 } 41 40%, 42 100% { 43 opacity: 1; 44 } 45}

JavaScript

1let rightTargets = document.querySelectorAll(".right"); //アニメーションさせたい要素 2let leftTargets = document.querySelectorAll(".left"); //アニメーションさせたい要素 3let offset = 10; //アニメーションタイミング 4 5window.addEventListener("scroll", function () { 6 //スクロールしたとき 7 8 //スクロール量を取得 9 var scroll = window.scrollY; 10 //画面の高さを取得 11 var h = window.innerHeight; 12 13 for (let target of rightTargets) { 14 var pos = target.getBoundingClientRect().top + scroll; //アニメーションさせたい要素の位置を取得 15 //スクロール量 > アニメーションさせたい要素の位置 16 if (scroll > pos - h + offset) { 17 // クラスを付与し、アニメーションを実行 18 target.classList.add("right-to-left"); 19 // target.classList.add("is-animated"); 20 } 21 } 22}); 23

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

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

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

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

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

guest

回答1

0

css

1transform: translateX(0px);

単位を付けてみるとか

投稿2021/11/30 15:43

recal

総合スコア1126

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問