これが私の状況です:
そのため、別の div をクリックしてサイドバーを切り替えようとしています。ビューポートの右側に固定されている高さ 100% のサイドバーです。基本的に、幅 50 ピクセルのトグル div と幅 250 ピクセルのサイドバー div の両方に 300 ピクセルの div をラップしようとしており、負の margin-right ピクセル値を使用してサイドバー部分を非表示にしたいと考えています。.toggle:active セレクター (トグル div がクリックされたときに発生する) を使用して、margin-right ピクセル値を 0px に戻すことでサイドバー部分を表示したいと考えています。
これまでのコード:
<div class="wrapper">
<a href="#">
<div class="toggle">Toggle</div>
</a>
<div class="cart">Cart</div>
</div>
これまでの CSS:
.wrapper {
position:fixed;
width:300px;
height:100%;
background-color:orange;
top:0;
right:0;
margin-right:-250px;
}
.toggle {
position:relative;
display:block;
width:50px;
height:100%;
background-color:grey;
float:left;
}
.toggle:active .wrapper {
margin-right:0px;
}
.cart {
position: relative;
width:250px;
height:100%;
background-color:red;
float:right;
}
これが私の質問です:
.toggle:active が使用されているときに .wrapper をターゲットにして css 属性を変更するにはどうすればよいですか? また、サイドバーがいつ表示され、いつ表示されないかを指定するにはどうすればよいですか?
私はJavascriptが初めてですが、コールバック関数のためにこれを行う必要があるようです。CSS のみが可能な場合は、そのソリューションに傾倒します。後で CSS トランジションを使用して要素を左右にスライドさせるアニメーションを選択できるように、margin-right を使用したいことに注意してください。