javascript - Want to close the sidepanel using the minus icon -


currently sidepanel opens using plus symbol , closed using close btn on sidepanel. plus symbol changes minus doesn't go plus when sidepanel closed , want able click minus symbol , close sidepanel well.

hope made point clear. here jsfiddle related it: https://jsfiddle.net/bob_js/h9yfbden/1/

html

<div class="container">   <i class="glyphicon glyphicon-plus-sign cd-btn"></i> </div> <div class="cd-panel-nvv from-right">              <header class="cd-panel-header">                 <a href="#0" class="cd-panel-close"></a>             </header>             <div class="cd-panel-container">         content   </div> </div> 

css

.glyphicon-plus-sign, .glyphicon-minus-sign{   top: 30%;     position: absolute !important;     z-index: 1;      color: rgb(255, 133, 102);     background-color: #fff;     border-radius: 50%;     border: 1px solid #fff;     cursor: pointer;     -webkit-transition: .2s ease-in-out;     transition: .2s ease-in-out; } .glyphicon-plus-sign:hover, .glyphicon-minus-sign:hover {     -webkit-transform: scale(1.3);     transform: scale(1.3); } *, *::after, *::before {   -webkit-box-sizing: border-box;   -moz-box-sizing: border-box;   box-sizing: border-box; }  *::after, *::before {   content: ''; }  {   color: #89ba2c;   text-decoration: none; } .cd-main-content {   text-align: center; } .cd-main-content .cd-btn {   position: relative;   display: inline-block;   background-color: #89ba2c;   color: #000;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale;   box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 5px rgba(0, 0, 0, 0.1);   -webkit-transition: 0.2s;   -moz-transition: 0.2s;   transition: 0.2s; } .no-touch .cd-main-content .cd-btn:hover {   -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 20px rgba(0, 0, 0, 0.3);   -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 20px rgba(0, 0, 0, 0.3);   box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 20px rgba(0, 0, 0, 0.3); }  .cd-main-content .cd-btn-val {   position: relative;   display: inline-block;   background-color: #89ba2c;   color: #000;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale;   box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 5px rgba(0, 0, 0, 0.1);   -webkit-transition: 0.2s;   -moz-transition: 0.2s;   transition: 0.2s; } .no-touch .cd-main-content .cd-btn-val:hover {   -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 20px rgba(0, 0, 0, 0.3);   -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 20px rgba(0, 0, 0, 0.3);   box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 20px rgba(0, 0, 0, 0.3); }  .cd-panel {   position: fixed;   top: 0;   left: 0;   visibility: hidden;   -webkit-transition: visibility 0s 0.6s;   -moz-transition: visibility 0s 0.6s;   transition: visibility 0s 0.6s;   font-family: 'open sans', sans-serif;   z-index: 9; } .cd-panel::after {   /* overlay layer */   position: absolute;   top: 0;   left: 0;   width: 100%;   height: 100%;   background: transparent;   cursor: pointer;   -webkit-transition: background 0.3s 0.3s;   -moz-transition: background 0.3s 0.3s;   transition: background 0.3s 0.3s; } .cd-panel.is-visible {   visibility: visible;   -webkit-transition: visibility 0s 0s;   -moz-transition: visibility 0s 0s;   transition: visibility 0s 0s; } .cd-panel.is-visible::after {   background: rgba(0, 0, 0, 0.6);   -webkit-transition: background 0.3s 0s;   -moz-transition: background 0.3s 0s;   transition: background 0.3s 0s; } .cd-panel.is-visible .cd-panel-close::before {   -webkit-animation: cd-close-1 0.6s 0.3s;   -moz-animation: cd-close-1 0.6s 0.3s;   animation: cd-close-1 0.6s 0.3s; } .cd-panel.is-visible .cd-panel-close::after {   -webkit-animation: cd-close-2 0.6s 0.3s;   -moz-animation: cd-close-2 0.6s 0.3s;   animation: cd-close-2 0.6s 0.3s; }   @-webkit-keyframes cd-close-1 {   0%, 50% {     -webkit-transform: rotate(0);   }   100% {     -webkit-transform: rotate(45deg);   } } @-moz-keyframes cd-close-1 {   0%, 50% {     -moz-transform: rotate(0);   }   100% {     -moz-transform: rotate(45deg);   } } @keyframes cd-close-1 {   0%, 50% {     -webkit-transform: rotate(0);     -moz-transform: rotate(0);     -ms-transform: rotate(0);     -o-transform: rotate(0);     transform: rotate(0);   }   100% {     -webkit-transform: rotate(45deg);     -moz-transform: rotate(45deg);     -ms-transform: rotate(45deg);     -o-transform: rotate(45deg);     transform: rotate(45deg);   } } @-webkit-keyframes cd-close-2 {   0%, 50% {     -webkit-transform: rotate(0);   }   100% {     -webkit-transform: rotate(-45deg);   } } @-moz-keyframes cd-close-2 {   0%, 50% {     -moz-transform: rotate(0);   }   100% {     -moz-transform: rotate(-45deg);   } } @keyframes cd-close-2 {   0%, 50% {     -webkit-transform: rotate(0);     -moz-transform: rotate(0);     -ms-transform: rotate(0);     -o-transform: rotate(0);     transform: rotate(0);   }   100% {     -webkit-transform: rotate(-45deg);     -moz-transform: rotate(-45deg);     -ms-transform: rotate(-45deg);     -o-transform: rotate(-45deg);     transform: rotate(-45deg);   } } .cd-panel-header {   position: fixed;   height: 27px;   width: 3%;   background-color: transparent;   z-index: 2;   box-shadow: 0 1px 1px rgba(0, 0, 0, 0);   -webkit-transition: top 1.3s 0s;   -moz-transition: top 1.3s 0s;   transition: top 1.3s 0s; } .from-right .cd-panel-header, .from-left .cd-panel-header {   top: -50px; } .from-right .cd-panel-header {   right: 20px; } .from-left .cd-panel-header {   left: 0; } .is-visible .cd-panel-header {   top: 0;   -webkit-transition: top 1.3s 0.3s;   -moz-transition: top 1.3s 0.3s;   transition: top 1.3s 0.3s; }  @media screen , (min-width: 1471px) {   .cd-panel-header {     height: 30px;   } }  .cd-panel-close {   position: absolute;   top: 0;   right: 0;   height: 100%;   width: 40px;   /* image replacement */   display: inline-block;   overflow: hidden;   text-indent: 100%;   white-space: nowrap; } .cd-panel-close::before, .cd-panel-close::after {   /* close icon created in css */   position: absolute;   top: 11px;   left: 20px;   height: 3px;   width: 15px;   background-color: #fff;   /* fixes bug pseudo elements slighty off position */   -webkit-backface-visibility: hidden;   backface-visibility: hidden; } .cd-panel-close::before {   -webkit-transform: rotate(45deg);   -moz-transform: rotate(45deg);   -ms-transform: rotate(45deg);   -o-transform: rotate(45deg);   transform: rotate(45deg); } .cd-panel-close::after {   -webkit-transform: rotate(-45deg);   -moz-transform: rotate(-45deg);   -ms-transform: rotate(-45deg);   -o-transform: rotate(-45deg);   transform: rotate(-45deg); } .no-touch .cd-panel-close:hover {   background-color: transparent; } .no-touch .cd-panel-close:hover::before, .no-touch .cd-panel-close:hover::after {   background-color: #ffffff;   -webkit-transition-property: -webkit-transform;   -moz-transition-property: -moz-transform;   transition-property: transform;   -webkit-transition-duration: 0.3s;   -moz-transition-duration: 0.3s;   transition-duration: 0.3s; } .no-touch .cd-panel-close:hover::before {   -webkit-transform: rotate(220deg);   -moz-transform: rotate(220deg);   -ms-transform: rotate(220deg);   -o-transform: rotate(220deg);   transform: rotate(220deg); } .no-touch .cd-panel-close:hover::after {   -webkit-transform: rotate(135deg);   -moz-transform: rotate(135deg);   -ms-transform: rotate(135deg);   -o-transform: rotate(135deg);   transform: rotate(135deg); }  .cd-panel-container {   position: fixed;   height: 100%;   top: 0;   background: #901818;   border-left: 1px solid #c8cacc;   z-index: 1;   -webkit-transition-property: -webkit-transform;   -moz-transition-property: -moz-transform;   transition-property: transform;   -webkit-transition-duration: 1.8s;   -moz-transition-duration: 1.8s;   transition-duration: 1.8s;   -webkit-transition-delay: 0.3s;   -moz-transition-delay: 0.3s;   transition-delay: 0.3s;   z-index: 1;   overflow-y: auto; } .from-right .cd-panel-container {   right: 0;   -webkit-transform: translate3d(100%, 0, 0);   -moz-transform: translate3d(100%, 0, 0);   -ms-transform: translate3d(100%, 0, 0);   -o-transform: translate3d(100%, 0, 0);   transform: translate3d(100%, 0, 0); } .from-left .cd-panel-container {   left: 0;   -webkit-transform: translate3d(-100%, 0, 0);   -moz-transform: translate3d(-100%, 0, 0);   -ms-transform: translate3d(-100%, 0, 0);   -o-transform: translate3d(-100%, 0, 0);   transform: translate3d(-100%, 0, 0); } .is-visible .cd-panel-container {   -webkit-transform: translate3d(0, 0, 0);   -moz-transform: translate3d(0, 0, 0);   -ms-transform: translate3d(0, 0, 0);   -o-transform: translate3d(0, 0, 0);   transform: translate3d(0, 0, 0);   -webkit-transition-delay: 0.3s;   -moz-transition-delay: 0.3s;   transition-delay: 0.3s; } @media screen , (min-width: 768px) {   .cd-panel-container {     width: 23.5%;   } } @media screen , (min-width: 1271px) {   .cd-panel-container {     width: 23.5%;   } } @media screen , (min-width: 1471px) {   .cd-panel-container {     width: 23.5%;   } } 

jquery

$(".glyphicon-minus-sign, .glyphicon-plus-sign").click(function(){     $(this).toggleclass("glyphicon-minus-sign glyphicon-plus-sign"); });  jquery(function($){     //open lateral panel     $('.cd-btn').on('click', function(event){         event.preventdefault();         $('.cd-panel').addclass('is-visible');     });     //close lateral panel     $('.cd-panel').on('click', function(event){         if( $(event.target).is('.cd-panel') || $(event.target).is('.cd-panel-close') ) {              $('.cd-panel').removeclass('is-visible');             event.preventdefault();         }     }); }); 

you not far...

i changed addclass toggleclass
in $('.cd-btn').on('click'....

and added $('.cd-btn').toggleclass("glyphicon-minus-sign glyphicon-plus-sign");
to $('.cd-panel').on('click'....

$(".glyphicon-minus-sign, .glyphicon-plus-sign").click(function(){     $(this).toggleclass("glyphicon-minus-sign glyphicon-plus-sign"); });  //nvv jquery(function($){     //open lateral panel     $('.cd-btn').on('click', function(event){         event.preventdefault();         $('.cd-panel').toggleclass('is-visible');     });     //close lateral panel     $('.cd-panel').on('click', function(event){         if( $(event.target).is('.cd-panel') || $(event.target).is('.cd-panel-close') ) {              $('.cd-panel').removeclass('is-visible');             $('.cd-btn').toggleclass("glyphicon-minus-sign glyphicon-plus-sign");             event.preventdefault();         }     }); }); 

updated fiddle


Comments

Popular posts from this blog

java - SSE Emitter : Manage timeouts and complete() -

jquery - uncaught exception: DataTables Editor - remote hosting of code not allowed -

java - How to resolve error - package com.squareup.okhttp3 doesn't exist? -