для карточки обратной связи

by Denis Tverdokhlebov

HTML

<head>
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons"
      rel="stylesheet">
</head>
<div class="main-wrapper">
  <div class="button">
    <i class="material-icons">add</i>
  </div>
  <div class="main-wrapper-inside">
    <img src="https://image.ibb.co/eCLkRJ/profile_200.png">
  </div>
  <div class="button-wrapper first">
    <div class="button-inside first">
      <i class="material-icons">chat</i>
    </div> 
  </div>
  <div class="button-wrapper second">
    <div class="button-inside second">
      <i class="material-icons">phone</i>
    </div> 
  </div>
  <div class="button-wrapper third">
    <div class="button-inside third">
      <i class="material-icons">videocam</i>
    </div> 
  </div>
</div>

CSS

* {
  box-sizing: border-box;
  user-select: none;
}

html {
  height: 100%;
}

body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 100%;
  padding: 0;
  margin: 0;
  background-color: rgba(225, 225, 225, 0.67);
}

.material-icons {
  color: #fff;
  font-size: 34px;
}

.button-inside .material-icons {
  font-size: 16px;
}

.main-wrapper {
  width: 200px;
  height: 200px;
  position: relative;
  border-radius: 50%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
}

.main-wrapper-inside {
  width: 200px;
  height: 200px;
  position: relative;
}

.button {
  border-radius: 50%;
  width: 58px;
  height: 58px;
  background-color: #F59F00;
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 6;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  cursor: pointer;
  -webkit-transition: all 500ms cubic-bezier(0.19, 1, 0.22, 1); 
          transition: all 500ms cubic-bezier(0.19, 1, 0.22, 1); 
  box-shadow: -1px 2px 12px rgba(0, 0, 0, 0.4);
  will-change: transform;
}

.button .material-icons {
  -webkit-transition: transform 200ms cubic-bezier(0.19, 1, 0.22, 1); 
          transition: transform 200ms cubic-bezier(0.19, 1, 0.22, 1); 
  will-change:...

JavaScript

var btn = document.querySelector('.button');
var buttonWrapper = document.querySelectorAll('.button-wrapper');

btn.addEventListener('click', function(){
  
  if(btn.classList.contains('animation')) {
    btn.classList.remove('animation');
  } else {
    btn.classList.add('animation');
  }
  
  for (i = 0; i < buttonWrapper.length; i++ ) {
    if(buttonWrapper[i].classList.contains('animation')){
      buttonWrapper[i].classList.remove('animation');   
    } else {
      buttonWrapper[i].classList.add('animation');
    }  
  }
  
});