При наведении курсора на кнопку мне нужно иметь округлый эффект «растущего». введите описание изображения здесь

Пожалуйста, смотрите эту ссылку для справки о том, как мне нужна кнопка для работы. http://demo1.wpopal.com/corpec/home-4/

В настоящее время я достиг эффекта «Не это» при наведении; хотя мой работодатель хочет, чтобы эффект имел такое округление.

Я использовал следующую css на кнопке «not this» для достижения эффекта роста, хотя мне нужно, чтобы края были округлены.

.Custom-Button a {
  position: relative;
  display: inline-block;
  padding: 15px 70px;
  border: 1px solid #fdc900 !important;
  color: white;
  font-size: 30px;
  font-family: arial;
  background-image: linear-gradient(#fdc900, #fdc900);
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: 0% 100%;
  transition: background-size .5s, color .5s;
}

.Custom-Button a:hover {
  background-size: 100% 100%;
  color: black;
}
<div class="Custom-Button">
  <a href="#">BUTTON</a>
</div>

Мне разрешено использовать CSS только для достижения следующего эффекта, и я уже потратил целый день, пытаясь заставить это работать.

1
Bernard Walters 22 Май 2019 в 19:49

2 ответа

Лучший ответ

Применение псевдоэлемента для кнопки решить это! надеюсь, это поможет!

.Custom-Button{
  position: relative;
  display: inline-block;
  padding: 15px 70px;
  border: 1px solid #fdc900 !important;
  color: white;
  font-size: 30px;
  font-family: arial;
  border-radius:50px;
  position:relative;
}
.Custom-Button a{
z-index:99;
text-decoration:none;
transition:color 1s;
}
.Custom-Button:hover:after{
  width:100%;
}
.Custom-Button:hover a{
  color:black;
}
.Custom-Button:after{
  width:0%;
  transition: width 1s;
  height:100%;
  z-index:-1;
  content:"";
  position:absolute;
   border-radius:50px;
  top:0;
  left:50%;
  transform:translateX(-50%);
    background-image: linear-gradient(#fdc900, #fdc900);
}
<div class="Custom-Button">
  <a href="#">BUTTON</a>
</div>
3
adel 22 Май 2019 в 17:31

Вы можете добиться этого эффекта, комбинируя z-index и переходы позиции и ширины базового элемента:

При наведении курсора дочерний элемент filler будет переходить из

position: absolute; left: 50%;

К

position: absolute; left: 0;

А также изменение размера с width: 0; на width: 100%;

Это то, что даст вам желаемый эффект «роста с середины»

Также вам нужно применить радиус границы к растущему элементу

a {
  position: relative;
  display: inline-block;
  padding: 15px 70px;
  border: 1px solid #fdc900 !important;
  color: black;
  font-size: 30px;
  font-family: arial;
  border-radius: 32px;
}

.text {
  position: relative;
  z-index: 2000;
}

.filler {
  position: absolute;
  z-index: 1000;
  top: 0;
  left: 50%;
  width: 0;
  height: 100%;
  border-radius: 32px;
  /* half of <a> height */
  background-color: #fdc900;
  transition: width .5s, color .5s, left .5s;
}

a:hover .filler {
  z-index: 500;
  width: 100%;
  left: 0;
  color: black;
}

a:hover .text {
  color: white;
}
<a href="#">
  <div class="text">
    BUTTON
  </div>
  <div class="filler">
  </div>


</a>
0
DigitalJedi 22 Май 2019 в 17:41