2017-02-03 6 views
0

В javascript я хочу позиционировать divs с поворотами без переходов, чтобы достичь исходной позиции для анимации (сделанной с переходом css). Итак, после этой начальной позиции я хочу включить переход.Отключение и включение перехода css для инициализации позиции

Я сделал код там: http://codepen.io/3MO/pen/ZLoKbv Кажется, что код не работает, он будет работать на моем локальном, window.onload не учитывается.

В любом случае: - divs не имеет каких-либо атрибутов перехода. - Я преобразую divs, в соответствии с цифрой, нажатой. - После этого я хочу начать переходы, поэтому добавляю класс в div, который определяет свойства перехода.

function onThumbnailClick(event) { 
    var index = parseInt(event.target.id.split('-')[1]); 

    //initialize the div position without transition : 
    initPortraitPanel(index); 
    //then I "activate" the transition : 
    $('.portraitDiv').addClass('active-transition'); 
    //After that I want to launch transitions... 
}  

.active-transition { 
     transition: 0.5s; 
} 

Проблема в том, что начальное позиционирование divs принимает свойства перехода, даже если они установлены после.

Любой может сказать мне правильный способ отключить переход для первоначального позиционирования, а затем активировать переход, чтобы это начальное позиционирование не использовало переход?

Спасибо!

+0

Вам нужно включить jQuery, чтобы заставить пример codepen работать. В будущем, если что-то не работает, посмотрите на консоль браузера, прежде чем делать что-либо еще;) – Archer

+0

Спасибо, я добавил его, так что теперь он работает. – Joel

+0

Имея действительно трудное время, понимая ваш вопрос. Можете ли вы объяснить, в чем проблема? –

ответ

1

Добавление таймаут в addClass:

function onThumbnailClick(event) { 
    var index = parseInt(event.target.id.split('-')[1]); 

    initPortraitPanel(index); 
    $('.portraitDiv').setTimeout(addClass('active-transition'), 50); 
} 

codepen

Кажется, что это было уже ответили, downvoted, и удалил ... Я не знаю, почему

+0

@Kevin Jimenez Кажется, что вы уже знали Ответ: Я что-то упустил? – vals

+0

Добавление таймаута кажется грязным решением, не так ли? Я имею в виду, как вы устанавливаете продолжительность? Эмпирический опыт? Но так будет зависеть от браузеров ... Это будет мой последнее решение для поиска канавы. Я пытался найти событие, вызванное, когда позиция была достигнута без перехода, но, похоже, ее не существует – Joel

+0

Нет, это не грязное решение. Это более чистое. не имеет значения, и в большинстве браузеров может быть 0. Основная проблема здесь заключается в том, чтобы позволить браузеру отображать между двумя функциями. (initPortraitPanel и добавление класса) – vals