Подробное описание и демонстрацией работы эффекта наведения под номером №137 для бибилиотеки Bootstrap. Html и CSS код для реализации hover effect как на изображении.
html разметка для реализации данного эффекта<div class="container"> <div class="row"> <div class="col-md-4 col-sm-6"> <div class="box"> <img src="https://fokit.ru/demo/images/hover-effect/hover-effect-style-137/img-1.jpg" alt=""/> <div class="box-content"> <div class="icon-top"><a href="#" class="fa fa-search"></a></div> <div class="icon-bottom"><a href="#" class="fa fa-link"></a></div> <h3 class="title">Williamson<span class="post">Web Developer</span></h3> </div> </div> </div> <div class="col-md-4 col-sm-6"> <div class="box"> <img src="https://fokit.ru/demo/images/hover-effect/hover-effect-style-137/img-2.jpg" alt=""/> <div class="box-content"> <div class="icon-top"><a href="#" class="fa fa-search"></a></div> <div class="icon-bottom"><a href="#" class="fa fa-link"></a></div> <h3 class="title">Kristiana<span class="post">Web Designer</span></h3> </div> </div> </div> </div> </div>css разметка для реализации данного эффекта
.box{ background: #000; text-align: center; color: #fff; overflow: hidden; box-shadow: 0 0 5px rgba(0, 0, 0, 0.15); position: relative; } .box img{ width: 100%; height: auto; opacity: 0.6; transition: all 0.45s ease-in-out; } .box:hover img{ opacity: 0.35; transform: scale(1.1); } .box .box-content{ width: 180px; height: 180px; border-radius: 50%; background-color: rgba(0, 0, 0, 0.2); margin: auto; position: absolute; top: 0; left: 0; bottom: 0; right: 0; z-index: 1; transition: all 0.45s ease-in-out; } .box:hover .box-content{ background-color: rgba(0, 0, 0, 0); } .box .box-content:before, .box .box-content:after{ content: ""; width: 100%; height: 100%; border-radius: 50%; border: 2px solid #fff; border-top-color: transparent; border-bottom-color: transparent; position: absolute; top: 0; left: 0; z-index: -1; transition: all 0.45s ease-in-out 0.3s; } .box .box-content:before{ transform: rotate(45deg); } .box .box-content:after{ transform: rotate(-45deg); } .box:hover .box-content:before{ transform: rotate(22deg); transition-delay: 0s; } .box:hover .box-content:after{ transform: rotate(-22deg); transition-delay: 0s; } .box .icon-top, .box .icon-bottom{ width: 100%; opacity: 0; overflow: hidden; position: absolute; top: 0; transform: translateY(-45%); transition: all 0.45s ease-in-out; } .box .icon-bottom{ top: auto; bottom: 0; transform: translateY(45%); } .box:hover .icon-top, .box:hover .icon-bottom{ opacity: 1; transition-delay: 0.3s; } .box .icon-top a, .box .icon-bottom a{ display: inline-block; font-size: 40px; color: #fff; } .box .title{ width: 100%; padding: 0 15px; margin: 0; font-size: 20px; font-weight: 400; text-transform: uppercase; letter-spacing: -1px; position: absolute; top: 50%; transform: translateY(-50%); } .box .post{ display: block; font-size: 18px; font-weight: 600; margin-top: 10px; } @media only screen and (max-width:990px){ .box{ margin-bottom: 20px; } } @media only screen and (max-width:479px){ .box .icon-top a, .box .icon-bottom a{ font-size: 30px; } }