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

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

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

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

CSS

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

Q&A

解決済

2回答

392閲覧

jqueryとcssのpositionについて

ayuayuayu

総合スコア68

jQuery

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

CSS

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

0グッド

0クリップ

投稿2022/09/29 06:12

positionで5枚の画像を重ねています。
これを左右中央にしたのですが、下からフェードインするアニメーションを付けたいのですが、jqueryを使うとtransform: 'translate(0, 0)になるので中央にできません。
この場合、jqueryのコードを使うのは無理ってことですか、、?

<div class="top"> <img class="top1" src="img/top1.png"> <img class="top2 slide-bottom show" src="img/top2.png"> <img class="top3 slide-bottom show" src="img/top3.png"> <img class="top4 slide-bottom show" src="img/top4.png"> <img class="top5 slide-bottom show" src="img/top5.png"> </div> /*下からフェードイン*/ .slide-bottom { opacity: 0; transform: translate(0, 30px); transition: all 1s ease-out; } .top{ text-align: center; } img.top1{ width: 100%; max-width: 700px; position:relative; } .top img { width: 100%; max-width: 700px; position: absolute; } <script> $(function(){ $(window).on('load scroll', function() { $(".show").each(function() { var winScroll = $(window).scrollTop(); var winHeight = $(window).height(); var scrollPos = winScroll + (winHeight * 0.9); if($(this).offset().top < scrollPos) { $(this).css({opacity: 1, transform: 'translate(0, 0)'}); }else{ $(this).css({opacity: 0, transform: ''}); } }); }); }); </script>

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

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

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

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

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

Cocode

2022/09/30 08:38 編集

これでいけてます?書いてるCSSがおかしかったので修正しました。 https://jsfiddle.net/vhda19k5/1 どう言う動きを想定されているのか分かりませんので、とりあえず5枚重なるようにはしました!
ayuayuayu

2022/10/05 09:07

ありがとうございます。 5枚重なることはできるのですが、真ん中にできないんです、、、 アニメーションやjqueryで動きを付けるとズレてしまいます、、
guest

回答2

0

自己解決

上のcssだと右に寄ってしまったりと出来なかったのですが
これで思ってた形、動きになりました。
ありがとうございました。

img.top1{ margin: 0 auto; /* 左右中央配置 */ position: relative; /* 絶対配置の基準に */ width: 100%; max-width: 700px; /* サイズは親に設定 */ } img.top2,img.top3,img.top4,img.top5{ position: absolute; left: 0; right: 0; margin: auto; z-index: 10; }

投稿2022/10/13 08:53

編集2022/10/13 09:04
ayuayuayu

総合スコア68

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

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

0

transform: translate(0, 0)というのは左右中央とは関係ないです。
translateは本来の位置からどれだけずらすかという設定ですので、本来の位置が左右中央になるように設定すればいいだけです。

5枚の画像は position: absolute; で重ねているので、その親要素(.top)を左右中央にして、それを基準にして5枚の画像は重ねて配置するという設定にすればいいでしょう。

ということでCSSを下記に設定すれば左右中央になります。

css

1.slide-bottom { 2 opacity: 0; 3 transform: translate(0, 30px); 4 transition: all 1s ease-out; 5 } 6.top { 7 margin: 0 auto; /* 左右中央配置 */ 8 position: relative; /* 絶対配置の基準に */ 9 width: 100%; 10 max-width: 700px; /* サイズは親に設定 */ 11} 12.top img { 13 width: 100%; /* 親のサイズに合わせる */ 14 position: absolute; /* 絶対配置 */ 15}

投稿2022/09/29 07:06

hatena19

総合スコア33757

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

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

ayuayuayu

2022/09/29 07:41 編集

すいません。出来たと思ったのですが、画像全体が右に寄ってしまってずれてしまいます、、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問