title: button transition toggle back and forth using CSS or JS
body: <p>I would like to create a button that toggles back and forth between two states on click.  Currently the first click transitions the button successfully to the second state, but I cannot get the button to transition back to the original state on the second click.</p>
  
  <p>Here is my code:</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>$('.popup_contact').on('click', function() {
    $(this).toggleClass('active');
  });</code></pre>
  <pre class="snippet-code-css lang-css prettyprint-override"><code>.popup_contact {
    display: inline-block;
    min-height: 50px;
    height: auto !important;
    width: 100px;
    padding-top: 5px;
    text-align: center;
    font-size: 20px;
    font-weight: 800;
    background: #e8eaed;
    border: none;
    border-radius: 10px;
    color: #424e65 !important;
    -webkit-transform: perspective(0px) translateZ(0);
    transform: perspective(0px) translateZ(0);
    -webkit-transition-property: color;
    transition-property: color;
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
  }
  .popup_contact:before {
    font-family: FontAwesome;
    content: '\f00d';
    color: #fff;
    padding-top: 15px;
    border-radius: 10px;
    position: absolute;
    text-align: center;
    z-index: 1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #424e65;
    -webkit-transform: scaleX(0);
    transform: scaleX(0);
    -webkit-transform-origin: 0 50%;
    transform-origin: 0 50%;
    -webkit-transition-property: transform;
    transition-property: transform;
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
    -webkit-transition-timing-function: ease-out;
    transition-timing-function: ease-out;
  }
  .popup_contact:hover,
  .popup_contact:focus,
  .popup_contact:active {
    color: #424e65 !important;
    cursor: pointer;
    border: none;
    background: #e8eaed;
    outline: 0 !important;
  }
  .popup_contact:focus:before,
  .popup_contact:active:before {
    -webkit-transform: scaleX(1);
    transform: scaleX(1);
  }</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"&gt;&lt;/script&gt;
  &lt;link href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet" /&gt;
  &lt;button class="popup_contact" style="vertical-align:middle"&gt;&lt;span&gt;&lt;i class="fa fa-fighter-jet" aria-hidden="true"&gt;&lt;/i&gt; &lt;/span&gt;
  &lt;/button&gt;</code></pre>
  </div>
  </div>
  </p>