transition-duration для top & left не плавно двигается

#one {
  width: 100px;
  height: 50px;
  transition: top 1s, left 1s;
}

.centered {
  position: fixed;
  top: 50%;
  left: 50%;
  /* bring your own prefixes */
  transform: translate(-50%, -50%);
}
<div onclick="document.querySelector('#one').classList.toggle('centered');" style='background: red' id='one'></div>

Плавно не хочет работать...


Ответы (1 шт):

Автор решения: Az Rieil

Попробуйте установить начальное значение равное нулю

.one {
    width: 50px;
    height: 50px;
    transition: top  1s linear, left 1s linear;
    background: red;
    left: 0;
    top: 0;
}
.centered {
  position: fixed;
  top: 50%;
  left: 50%;
  /* bring your own prefixes */
  transform: translate(-50%, -50%);
}

Fiddle.

→ Ссылка