###実現したいこと
タブでスライドするアニメーションのCSSですが、下記の二箇所を解決したいです。
・タブ2要素が回り込みしてしまい、タブ1要素と重なる(下にくる)。
・CSSで設定していない、タブ1要素の下とタブ2要素の下謎の白スペースができる
###コード
view
1<div id="wrap"> 2 <div id="tab1" class="tab selected">タブ1</div> 3 <div id="tab2" class="tab">タブ2</div> 4 5 <div id="tab-container"> 6 <div id="slide" class=""> 7 <div id="first" class="box"> 8 <div class="box-red"></div> 9 </div> 10 <div id="second" class="box"> 11 <div class="box-blue"></div> 12 <div class="box-blue"></div> 13 </div> 14 </div> 15 </div> 16</div>
css
1#wrap{ 2 background-color:white; 3} 4.tab { 5 height: 50px; 6 width: 50%; 7 float: left; 8} 9.selected { 10 color: black; 11 font-weight:bold; 12 background-color:grey; 13} 14#tab-container { 15 position: relative; 16 width: 100%; 17 overflow: hidden; 18 clear: left; 19} 20.box { 21 display: inline-block; 22 white-space: nowrap; 23 width: 100%; 24} 25.box-red{ 26 height:80px; 27 width:80px; 28 border:2px solid black; 29 background-color:red; 30} 31.box-blue{ 32 height:80px; 33 width:80px; 34 border:2px solid black; 35 background-color:blue; 36} 37#first { 38 top: 0px; 39 left: 0px; 40} 41#second { 42 top: 0px; 43 left: 100%; 44} 45#slide { 46 transition: transform 1s ease-in-out 0s; 47 -moz-transition: -moz-transform 1s ease-in-out 0s; 48 -webkit-transition: -webkit-transform 1s ease-in-out 0s; 49} 50.move-to-first { 51 transform: translateX(0px); 52 -moz-transform: translateX(0px); 53 -webkit-transform: translateX(0px); 54} 55.move-to-second { 56 transform: translateX(-100%); 57 -moz-transform: translateX(-100%); 58 -webkit-transform: translateX(-100%); 59}
js
1$(document).on('turbolinks:load', function() { 2 $("#tab1").click(moveToFirst); 3 $("#tab2").click(moveToSecond); 4 5 function moveToFirst() { 6 $("#slide").attr('class', 'move-to-first'); 7 $(".tab").attr('class', 'tab'); 8 $("#tab1").attr('class', 'tab selected'); 9 } 10 11 function moveToSecond() { 12 $("#slide").attr('class', 'move-to-second'); 13 $(".tab").attr('class', 'tab'); 14 $("#tab2").attr('class', 'tab selected'); 15 } 16});
お分かりの方、ぜひご教示お願いします。
ちなみに「タブでスライド」とはどういう動作のことでしょうか?
サンプルサイトなどありましたら教えていただければと思います。
(前回の質問に回答したのですが、タイトルをあまり気にしていませんでした。ごめんなさい。)
ご質問ありがとうございます!言葉足らずで申し訳ありません。タブを押したら、その要素画面が横からスライドしてくるイメージです。
参考サイトは以下になります。
https://kodocode.net/design-css-tab/
・タブ切り替え時にスライドアニメーションで変化。JSの内容もシンプルでGOOD。という中央あたりにあるコードを参考にしています。
参考サイトがあるのであればそのまま使えばいいのでは?
提示コードは比較してみるといろいろと足りないところがありますが、意図があるのでしょうか?
ご回答有難うございます!tab-containerの高さの設定を外したく、参考サイトと少し違うコードになっておりました!別質問で頂いた回答の方法で工作した結果、うまくできました!有難うございました!
回答1件
あなたの回答
tips
プレビュー