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

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ブラウザのほとんどに搭載されています。

jQuery

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

HTML

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

Q&A

解決済

1回答

689閲覧

スクロールでフェードインアニメ時、iOSでスクロールがカタつく原因

aaachi

総合スコア69

CSS3

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

HTML5

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

JavaScript

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

jQuery

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

HTML

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

0グッド

0クリップ

投稿2019/01/25 09:41

いつもお世話になっております。

ウェブサイトでよくみかける、スクロールをしていくとフワッと現れるアニメーション を実装したところ、
表題にもあるように、iOSでのみスクロールが止まってしまう問題が起きてしまいました。(AndroidやPCでは問題ないようです)

どなたかご存知の方がいましたら、お力を貸して頂けないでしょうか?

起きている問題

・じっくり見るようにゆっくりとスクロールする分には、スクロールは引っかかりません。
・ササッと早くスクロールしようとすると、該当のcssアニメーションが起きる地点で、一度ピタッと止まってしまいます。(そこからスクロールを再開することは可能な状態です。)

試したこと・調べたこと

・transform: translate3d(0,0,0); をつける
・will-change: transform; をつける
https://teratail.com/questions/10632 こちらの質問者と同じような現象が生じているのだと思いますが、回答者によりますと「iOS8からは改善されてたみたい」とあり、解消されているはずなのですが(検証端末はiOS12なため)、カタついたままです。

js

1/* スクロールでフェードインアニメ */ 2var posi_top,wih_half,current_view; 3 4$(window).load(function(){ 5 6 var wih = window.innerHeight; 7 var wih_half = wih*3/5; 8 current_view = wih_half; 9 set_posi(); 10}); 11 12$(window).resize(function() { 13 14 var wih = window.innerHeight; 15 var wih_half = wih*3/5; 16 current_view = wih_half; 17 set_posi(); 18}); 19 20$(window).scroll(function(){ 21 22 var wih = window.innerHeight; 23 var wih_half = wih*3/5; 24 current_view = $(this).scrollTop() + wih_half; 25 set_posi(); 26 27}); 28 29function set_posi(){ 30 31 $('.anime_center').each(function() { 32 var posi = $(this).offset(); 33 posi_top = posi.top; 34 35 //初回のみ 36 if(current_view > posi_top){ 37 $(this).addClass('do'); 38 } 39 }); 40 41}

scss

1.anime_center{ 2 visibility: hidden; 3} 4.do{ 5 animation-duration: 2s; 6 animation-name: RightToLeft; 7 animation-iteration-count: 1; 8 animation-fill-mode:forwards; 9 visibility: visible; 10} 11 12/* 「RightToLeft」の動作内容 */ 13@keyframes RightToLeft { 14 0% { 15 opacity: 0; 16 transform: translateX(50px);/* X軸方向に50px */ 17 text-shadow: -6px 0px 15px rgba(255, 255, 255, 0.30), 6px 0px 15px rgba(255, 255, 255, 0.00); 18 } 1940%{ 20 text-shadow: -6px 0px 15px rgba(255, 255, 255, 0.30), 6px 0px 15px rgba(255, 255, 255, 0.80); 21} 22 100% { 23 opacity: 1; 24 transform: translateX(0); 25 text-shadow: -6px 0px 15px rgba(255, 255, 255, 0.0), 6px 0px 15px rgba(255, 255, 255, 0.0); 26 } 27}

※htmlは省いております。anime_centerというクラス名を要素にもたせ、画面上から3分の5の高さにくると、フワッとでてくる、という仕組みとなっております。

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

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

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

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

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

guest

回答1

0

自己解決

フェードインしてくる要素が、body幅よりも外側から入ってきてしまうことが原因でした。

そのため、css内のtransform: translateX(50px)→(20px)※bodyに収まるようにすることで、解決致しました。

scss

1/* 「RightToLeft」の動作内容 */ 2@keyframes RightToLeft { 3 0% { 4 opacity: 0; 5 transform: translateX(20px);/* X軸方向に20px */ 6 text-shadow: -6px 0px 15px rgba(255, 255, 255, 0.30), 6px 0px 15px rgba(255, 255, 255, 0.00); 7 } 840%{ 9 text-shadow: -6px 0px 15px rgba(255, 255, 255, 0.30), 6px 0px 15px rgba(255, 255, 255, 0.80); 10} 11 100% { 12 opacity: 1; 13 transform: translateX(0); 14 text-shadow: -6px 0px 15px rgba(255, 255, 255, 0.0), 6px 0px 15px rgba(255, 255, 255, 0.0); 15 } 16}

投稿2019/01/25 12:00

編集2019/01/25 12:02
aaachi

総合スコア69

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問