2015-05-19 2 views
-1

Я понимаю, что можно использовать анимацию CSS3 в «верхнем» позиционировании.Использование переходов CSS3 на «верхнем» позиционировании

У меня есть графический объект, который я хочу переместить, сдвинув его всего на 50 пикселей, когда пользователь прокручивается мимо определенной точки.

Мне удалось получить текст для изменения, но я не смог его плавно перейти от 50 пикселей к 0px, вместо этого он «резко скачет».

Вот JS Fiddle: https://jsfiddle.net/0rkbz7ox/

Он работает путем удаления класса «скрытый», который скорректировал значение top назад 0 из 50, но это не живой, несмотря на добавление transition к оригинальному имени класса.

CSS-для графики:

.about-graphic{-webkit-transition: all 0.5s ease-in-out;-moz-transition: all 0.5s ease-in-out;-o-transition: all 0.5s ease-in-out;transition: all 0.5s ease-in-out;} 
.about-graphic.hidden{position:relative;top:50px;} 
+0

Вопрос в том, что вы даете ответ на свой вопрос с задержкой в ​​20 секунд ??? – smnbbrv

+0

@simon Я быстро понял свою ошибку после публикации вопроса. Я подумал, что я мог бы также опубликовать ответ на случай, если кто-то еще придет, и ему нужен этот ответ, а не удаление вопроса. (Я ответил через 2 минуты после того, как я разместил вопрос, а не 20 секунд, не преувеличиваю) – Francesca

ответ

0

Обнаруженный мою ошибку.

Оригинальное состояние должно содержать top:0; и position:relative, чтобы анимировать, все оригинальные CSS должны быть там.

.about-graphic{top:0;position:relative;-webkit-transition: all 0.5s ease-in-out;-moz-transition: all 0.5s ease-in-out;-o-transition: all 0.5s ease-in-out;transition: all 0.5s ease-in-out;} 

.about-graphic.hidden{top:50px;} 
1

Просто добавьте position: relative; top: 0; к .about-graphic так:

.about-graphic { 
    ... // Your transitions 
    position: relative; 
    top: 0; 
} 

Вы можете увеличить продолжительность перехода, чтобы увидеть эффект ясно.

Смежные вопросы