В просторах интернета наткнулся на сайт, где реализован интересный и довольно простой эффект наведения на кнопку.
Живой пример:
Суть
- Наводим курсор на кнопку
- Высчитываем положение курсора относительно кнопки
- Исходя из координатов курсора перемещается элемент
- Видим эффект заполнения кнопки
html разметка
Я подключил библиотеку jquey, потому что мне так удобнее.
<a href="#" class="btn"> <i class="fa fa-fire-extinguisher" aria-hidden="true"></i> <span class="btn_text">Наведите мышкой</span> <span class="btn_hover"></span> </a> <a href="#" class="btn"> <i class="fa fa-check" aria-hidden="true"></i> <span class="btn_text">В разные места</span> <span class="btn_hover"></span> </a> <a href="#" class="btn"> <i class="fa fa-heart-o" aria-hidden="true"></i> <span class="btn_text">И еще разок</span> <span class="btn_hover"></span> </a>
css
.btn
{
display: inline-block;
padding: 12px 55px;
font-size: 20px;
line-height: 1.42857143;
text-align: center;
color: #fff;
border-radius: 4px;
border: 2px solid rgb(255, 255, 255);
text-decoration: none;
position: relative;
overflow: hidden;
}
.btn:hover .btn_hover
{
width: 1000px;
height: 1000px;
}
.btn .btn_hover
{
position: absolute;
z-index: -1;
width: 0;
height: 0;
border-radius: 50%;
background: #50e3c2;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
transition: width .6s, height .6s, background-color .4s;
}
javascript
$(function(){
$(".btn").mouseover(function(e){
// положение элемента
var pos = $(this).offset();
var elem_left = pos.left;
var elem_top = pos.top;
// положение курсора внутри элемента
var Xinner = e.pageX - elem_left;
var Yinner = e.pageY - elem_top;
$(this).find(".btn_hover").css({
"left":Xinner,
"top":Yinner
})
});
});
Вот и все. Ничего сложного.
Таким образом мы получили интересный и просто эффект наведения курсора на кнопку под средствами css3 и javascript.


