前提・実現したいこと
レスポンシブサイトで
ブレイクポイント切り替えの動作がゆっくりになってしまう
のを解決したいです。
発生している問題
画面幅を変更して確認をしていた時に 「 ブレイクポイントでの切り替わりがゆっくり動作している 」 ことに気がつきました。 (具体的には画像幅が変わる動作がゆっくり 等) 要素をふわっと出すjQueryを用いているので sectionなどのほとんどの要素にCSSで 「 transition: all 1s; 」 を使っているのですが、これが原因のようです。 (transition:を消すと解決します。)
html
1 <section id="profile"> 2 <h2 class="fadein-x-h2"> 3 profile 4 </h2> 5 <div class="flex__herf"> 6 <div class="profile__text fadein"> 7 <p class="font__optima sytle-bottom15 textl"> 8 ロゴ 9 </p> 10 <p class="texts sytle-bottom15"> 11 テキストテキストテキスト 12 </p> 13 </div> 14 <div class="profile__img fadein"> 15 <p class="profile__img--01"> 16 <img src="images/profile01.jpg" alt="プロフィール01"> 17 </p> 18 <p class="profile__img--02"> 19 <img src="images/profile02.jpg" alt="プロフィール02"> 20 </p> 21 </div> 22 </div> 23 </section>
js
1// 読み込み時のフェードイン 2$('head').append( 3'<style>body{display:none;}' 4); 5$(window).on("load", function() { 6$('body').delay(600).fadeIn("slow"); 7}); 8 9// 上下フェードイン 10$(function(){ 11 $(window).scroll(function (){ 12 $('.fadein').each(function(){ 13 var targetElement = $(this).offset().top; 14 var scroll = $(window).scrollTop(); 15 var windowHeight = $(window).height(); 16 if (scroll > targetElement - windowHeight + 200){ 17 $(this).css('opacity','1'); 18 $(this).css('transform','translateY(0)'); 19 } 20 }); 21 }); 22}); 23 24 25// 左右フェードイン 26$(function(){ 27 $(window).scroll(function (){ 28 $('.fadein-x').each(function(){ 29 var targetElement = $(this).offset().top; 30 var scroll = $(window).scrollTop(); 31 var windowHeight = $(window).height(); 32 if (scroll > targetElement - windowHeight + 200){ 33 $(this).css('opacity','1'); 34 $(this).css('transform','translateX(0)'); 35 } 36 }); 37 }); 38}); 39 40// 左右フェードイン-h1用(opacityがちがう) 41$(function(){ 42 $(window).scroll(function (){ 43 $('.fadein-x-h2').each(function(){ 44 var targetElement = $(this).offset().top; 45 var scroll = $(window).scrollTop(); 46 var windowHeight = $(window).height(); 47 if (scroll > targetElement - windowHeight + 200){ 48 $(this).css('opacity','.6'); 49 $(this).css('transform','translateX(0)'); 50 } 51 }); 52 }); 53}); 54 55 56jQuery(function() { 57 var pagetop = $('#page_top'); 58 pagetop.hide(); 59 $(window).scroll(function () { 60 if ($(this).scrollTop() > 100) { //100pxスクロールしたら表示 61 pagetop.fadeIn(); 62 } else { 63 pagetop.fadeOut(); 64 } 65 }); 66 pagetop.click(function () { 67 $('body,html').animate({ 68 scrollTop: 0 69 }, 500); //0.5秒かけてトップへ移動 70 return false; 71 }); 72}); 73 74//—しゅーっと移動するver 75$(function(){ 76 $('a[href^="#"]').click(function(){ 77 var time = 500; 78 var href= $(this).attr("href"); 79 var target = $(href == "#" ? 'html' : href); 80 var distance = target.offset().top; 81 $("html, body").animate({scrollTop:distance}, time, "swing"); 82 return false; 83 }); 84}); 85
該当のソースコード CSS
.fadein { opacity : 0; transform: translateY(20px); transition: all 2s; } .fadein-x,.fadein-x-h2 { opacity : 0; transform: translateX(-50px); transition: all 1s; }
具体的な説明
この.fadein などのclassをほとんどのsectionにかけて スクロールした際にふわっと表示させるようにしています。 このふわっと表示は保持したまま、 ブレイクポイントの際画像のサイズなどが変わるの スピードは通常通りすっと変化してほしいです。 こちらの利用が初めてなので この説明とコードだけでは解決不可能の場合は 不足な部分をご教示いただけると幸いです。 よろしくお願いいたします。
動作確認できるように現在のHTML、CSSのコードを記載すると回答が得られやすいです。
「ふわっと出す」とは具体的には opacity のアニメーションですか?
>azuapricotさん
コメントありがとうございます!
コードをいくらか削って載せてみたのですが文字制限に引っかかり、動作確認できるまでのコードを載せられなさそうでした・・その場合ネットに上げて確認していただく形式でもよいのでしょうか??
>Lhankor_Mhyさん
opacity : 0; と
transform: translateY(20px);
で一旦非表示にし、jsの方でスクロールすると表示になるようにしています。
一部だけでも動作確認できるものがあれば回答は可能かと思います。
回答1件
あなたの回答
tips
プレビュー