Toggle sidebar-div mit einem weiteren div mit CSS/Javascript

hier ist meine situation:

So, ich bin versucht zu ändern, sidebar, indem Sie auf anderen div. Es ist ein 100% Höhe sidebar, die ist fest an der rechten Seite des Viewports. Im wesentlichen versuche ich zu wickeln, ein 300px div um die 50px breit toggle-div und der 250px Breite sidebar-div, und ich möchte die Seitenleiste ausblenden Teil mit einem negativen margin-right pixel-Wert. Mit Hilfe der .toggle:active-Selektor (dies tritt auf, wenn der toggle-div geklickt wird), möchte ich zeigen, die sidebar-Teil durch die Einstellung, dass margin-right pixel-Wert wieder auf 0px.

Code so weit:

<div class="wrapper">
  <a href="#">
    <div class="toggle">Toggle</div>
  </a>
  <div class="cart">Cart</div>
</div>

CSS so weit:

.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;
}

Hier ist das jsfiddle!

Hier ist meine Frage:

Wie kann ich das Ziel .wrapper zum ändern einer css-Attribut, wenn .toggle:aktiv engagiert ist? Auch, wie kann ich angeben, wenn die Seitenleiste sichtbar ist, und wenn es das nicht?

Ich bin neu in Javascript, aber wie es scheint, ich werde es brauchen, um dies zu tun durch die callback-Funktion. Wenn CSS-only ist möglich, ich würde tendieren zu dieser Lösung. Bitte beachten Sie, dass ich verwenden möchten, margin-right, so dass ich entscheiden, um mithilfe von CSS-transitions später zu animieren, mein element, Schiebetüren Links und rechts.

Schreibe einen Kommentar