jquery初心者です。
みなさんの知恵をください。
前提・実現したいこと
LPのコーディングでスクロールしていくと要素がフェードインしてくるというのを実装したいです。
スクロールとフェードインなのでjqueryとcssを使って実装しました。
###問題点
PCではまったく問題なく動いてフェードインもするのですが、iPhoneで確認するとフェードインの発火点がおかしいのか、慣性スクロールのせいなのかスクロールしてタップしたかいないかぐらいでフェードインしてきます。
該当のソースコード
css
1.fadein { 2 text-align: center; 3 opacity: 0.3; 4 transition-duration: 1.5s; 5} 6.fadein:nth-child(2n+1) { 7 transform: translate(0,100px); 8} 9.fadein:nth-child(2n+0) { 10 transform: translate(0,-100px); 11} 12.fadein:nth-child(2n+1).effect, div:nth-child(2n+0).effect { 13 transform: translate(0,0); 14 opacity: 1; 15} 16
jquery
1 $(window).scroll(function() { 2 var windowH = $(window).height(), 3 scrollY = $(window).scrollTop(); 4 5 $('.fadein').each(function() { 6 var thisPosition = $(this).offset().top; 7 var thisHeight = $(this).height(); 8 9 //要素が画面上に表示されているときにclass="effect"をつける 10 if (thisPosition <= scrollY + windowH && thisPosition + thisHeight >= scrollY) { 11 $(this).addClass('effect'); 12 13 }else{ 14 $(this).removeClass('effect') ; 15 } 16 }); 17 });
htmlではフェードインしたいものを.fadeinでクラス名をつけています。
試したこと
上記のjqueryではtouchmoveを入れていませんが、touchmoveを入れたり、2日間で20時間ほどこの問題に費やしていてあらかたネットに乗っていることは試しました。
https://teratail.com/questions/170883
この方の質問が1番近いのかなと思い参考にして実装しましたがうまくいかずでした。
iosでフェードインさせるのであればどのようなコードがよろしいでしょうか?
補足情報(FW/ツールのバージョンなど)
PCはchrome、ios11
よろしくお願い申し上げます。
あなたの回答
tips
プレビュー