【CSS】How to overlay diagonally when hovering a circular image using transform | Demo page

※Please check using Developer tools

Sponsored links

CSS

body {
  background: #eefbfd;
}

.list {
  display: flex;
  justify-content: space-between;
  width: 700px;
  margin: 70px auto 0;
}

.list li {
  position: relative;
  display: inline-block;
  width: 31%;
  overflow: hidden;
  line-height: 0;
  cursor: pointer;
  border-radius: 50%;
}

.list li:before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 200%;
  height: 100%;
  opacity: .3;
  z-index: 1;
  pointer-events: none;
  transform-origin: left top;
  transform: skewX(-45deg) translateX(-100%);
  transition: transform .4s ease;
  background-color: #67dcf1;
}

.list li:hover:before {
  transform: skewX(-45deg) translateX(0);
}

@media screen and (max-width:640px){
  .list {
    width: 100%;
  }
}