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

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

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

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

CSS

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

Q&A

解決済

1回答

1162閲覧

レシポンシブ:ブレイクポイント切り替わりで「ゆっくり動作」になってしまうのを防ぎたい

yooina6

総合スコア7

CSS3

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

CSS

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

0グッド

1クリップ

投稿2020/02/04 05:50

編集2020/02/04 07:36

前提・実現したいこと

レスポンシブサイトで
ブレイクポイント切り替えの動作がゆっくりになってしまう
のを解決したいです。

発生している問題

画面幅を変更して確認をしていた時に 「 ブレイクポイントでの切り替わりがゆっくり動作している 」 ことに気がつきました。 (具体的には画像幅が変わる動作がゆっくり 等) 要素をふわっと出す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にかけて スクロールした際にふわっと表示させるようにしています。 このふわっと表示は保持したまま、 ブレイクポイントの際画像のサイズなどが変わるの スピードは通常通りすっと変化してほしいです。 こちらの利用が初めてなので この説明とコードだけでは解決不可能の場合は 不足な部分をご教示いただけると幸いです。 よろしくお願いいたします。

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

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

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

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

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

azuapricot

2020/02/04 06:29

動作確認できるように現在のHTML、CSSのコードを記載すると回答が得られやすいです。
Lhankor_Mhy

2020/02/04 07:06

「ふわっと出す」とは具体的には opacity のアニメーションですか?
yooina6

2020/02/04 07:25 編集

>azuapricotさん コメントありがとうございます! コードをいくらか削って載せてみたのですが文字制限に引っかかり、動作確認できるまでのコードを載せられなさそうでした・・その場合ネットに上げて確認していただく形式でもよいのでしょうか??
yooina6

2020/02/04 07:33

>Lhankor_Mhyさん opacity : 0; と transform: translateY(20px); で一旦非表示にし、jsの方でスクロールすると表示になるようにしています。
azuapricot

2020/02/04 07:36

一部だけでも動作確認できるものがあれば回答は可能かと思います。
guest

回答1

0

ベストアンサー

css

1 transition: all 2s;

css

1 transition: opacity 2s,transform 2s;

みたいな感じではどうでしょうか?

投稿2020/02/04 07:43

Lhankor_Mhy

総合スコア36960

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

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

yooina6

2020/02/04 07:51

上記で解決しました!! 不足の多い質問にもかかわらずありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問