Заливка элемента от точки наведения курсора

Просмотры: 5386
Комментарии: 0
Лайки: 15
Верстка HTML&CSS

В просторах интернета наткнулся на сайт, где реализован интересный и довольно простой эффект наведения на кнопку.

Живой пример:

Суть

  1. Наводим курсор на кнопку
  2. Высчитываем положение курсора относительно кнопки
  3. Исходя из координатов курсора перемещается элемент
  4. Видим эффект заполнения кнопки

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.

Спасибо, что долистали до конца!

Поставь лайк и оцени статью, ведь я старался

Напиши комментарий и поделись своим мнением, все ли у тебя получилось, какие сложности возникли или просто напиши спасибо за статью

No rating
5,0(4)

Нужна реализация этого решения на вашем сайте?

Не хотите разбираться с кодом самостоятельно? Я могу установить, настроить и адаптировать решение под ваш сайт или разработать аналогичную функциональность под ваши требования.

Обратиться за помощью

Комментарии

Подписаться
Уведомить о
guest
0 комментариев
Кисамеев Логотип
Не в сети
Услуги