Браузер Edge: рычажное движение в конце перехода, только когда перекос и перевод используются вместе - PullRequest
3 голосов
/ 02 июля 2019

У меня есть позиция: абсолютный элемент за моим тегом привязки. Я оживляю этот элемент с помощью простого перехода CSS, когда привязка тега находится.

Только на Edge, в самом конце перехода это забавное резкое движение.

Я попытался добавить translateX (0) в оба состояния при наведении и в нормальное состояние, но это не устранило резкое движение в конце.

Вот кнопка HTML:

.button {
  display: inline-block;
  border: none;
  background: transparent;
  position: relative;
  color: #212121;
  font-size: 19px;
  line-height: 1;
  padding: 0;
  margin: 30px;
  text-decoration: none;
  font-weight: 400;
  cursor: pointer;
  z-index: 2;
  transition: .3s;
  transition-timing-function: cubic-bezier(.82, .21, .27, .81);
}

.button-bg {
  position: absolute;
  padding: 30px;
  height: 50px;
  border-radius: 0;
  left: -30px;
  right: -30px;
  top: 50%;
  transform: translateY(-50%);
  z-index: -1;
  transition: .4s;
  transition-timing-function: cubic-bezier(.82, .21, .27, .81);
  transform-origin: center;
  border: 2px solid #212121;
}

a.button:hover .button-bg {
  -webkit-transform: translateY(-50%) scaleY(2) scaleX(1.4) skewY(10deg);
  transform: translateY(-50%) scaleY(2) scaleX(1.4) skewY(10deg);
  -webkit-transform-origin: center;
  transform-origin: center;
  border: 2px solid transparent;
  -webkit-box-shadow: 0px 0px 20px 0px rgba(48, 48, 48, 0.6);
  -moz-box-shadow: 0px 0px 20px 0px rgba(48, 48, 48, 0.6);
  box-shadow: 0px 0px 20px 0px rgba(48, 48, 48, 0.6);
}
<a class="button case-readmore" href="#">							 
    Read Case
    <span class="button-bg"></span>
    </a>

Ожидаемый результат можно увидеть с Chrome, Firefox, Internet Explorer и т. Д.

Странный багфест можно увидеть в Edge, где элемент трансформируется правильно, а в самом конце трансформация резко дергается вправо.

Если я уберу наклонную часть перехода, то больше не будет рывков.

1 Ответ

0 голосов
/ 02 июля 2019

Попробуйте добавить значения по умолчанию перед наведением. Вероятно, существует проблема с интерполяцией.

.button {
  display: inline-block;
  border: none;
  background: transparent;
  position: relative;
  color: #212121;
  font-size: 19px;
  line-height: 1;
  padding: 0;
  margin: 30px;
  text-decoration: none;
  font-weight: 400;
  cursor: pointer;
  z-index: 2;
  transition: .3s;
  transition-timing-function: cubic-bezier(.82, .21, .27, .81);
}

.button-bg {
  position: absolute;
  padding: 30px;
  height: 50px;
  border-radius: 0;
  left: -30px;
  right: -30px;
  top: 50%;
  transform: translateY(-50%) scaleY(1) scaleX(1) skewY(0deg);
  z-index: -1;
  transition: .4s;
  transition-timing-function: cubic-bezier(.82, .21, .27, .81);
  transform-origin: center;
  border: 2px solid #212121;
}

a.button:hover .button-bg {
  transform: translateY(-50%) scaleY(2) scaleX(1.4) skewY(10deg);
  transform-origin: center;
  border: 2px solid transparent;
  box-shadow: 0px 0px 20px 0px rgba(48, 48, 48, 0.6);
}
<a class="button case-readmore" href="#">							 
    Read Case
    <span class="button-bg"></span>
    </a>

Связанный:

Странное поведение при вращении элемента при наведении

Матрица не равна переводить и вращать комбинации в анимации преобразования CSS?

почему эта ключевая анимация формирует этот анимационный эффект

...