Мой элемент имеет transition: transform .5s
Как узнать, отображается ли элемент?
тогда имеет отдельный класс: transform: translatex(-100%)
Так что я хотел бы добиться того, что на начальном этапе, элемент позиционируется в левую сторону. В окне onload, Когда элемент визуализируется, я удаляю класс преобразования, и браузер будет анимировать элемент обратно в правильное положение.
Но на самом деле происходит то, что когда страница становится видимой/визуализированной, элемент уже находится в правильном положении. и нет анимации.
Я пробовал setTimeout(function() {}, 0);
не работает. Если I setTimeout в течение 1 секунды, он работает, но иногда рендеринг занимает много времени, и я должен установить Timeout на 2 секунды. Но потом иногда он становится быстрым, а 2 секунды - долго ждать.
В целом, я считаю, что это ненадежный или правильный способ сделать это.
Как я могу достичь того, чего хочу, правильный путь?
Edit: Извините, ребята, после попытки собрать демо, я понял, что я не удалял класс у окна OnLoad. Это связано с тем, что мой элемент и его javascript и css загружены с помощью AJAX. Это может произойти до загрузки окна или после загрузки окна.
В любом случае, теперь мой вопрос: что, если окно занимает много времени, чтобы загрузить? Возможно ли, что мой элемент будет отображаться до завершения загрузки окна? Или браузеры отображаются только тогда, когда все окно заканчивает загрузку?
Потому что я хочу как можно скорее анимировать элемент. Таким образом, безопасно ли ждать окна onload, в случае, когда окно занимает много времени для загрузки (изображения и медленное соединение и прочее)?
И если я загружу элемент с помощью AJAX после загрузки окна, могу ли я сразу запустить анимацию, удалив преобразование? Или я должен определить, когда элемент визуализируется?
Метод, который вы описываете, звучит так, как будто он должен работать. Можете ли вы показать нам живой пример, где это не так? – Halcyon
Трудно помочь, когда у нас нет демоверсии, которая реплицирует проблему. – charlietfl
Можете ли вы дать нам простую демонстрацию, я думал, что ваш код был выполнен до того, как документ правильно загрузился, но я пропустил часть, которую вы упомянули «В окне onload ». Я отправил ответ (теперь удаленный), говорящий о событиях onload, потому что вы говорите, что «рендер когда-то занимает много времени, а иногда и быстро», и я жестко говорю вам, что вы ссылаетесь на весь контент dom. Если элемент является изображением, вы должны проверить это сообщение http://stackoverflow.com/questions/1977871/check-if-an-image-is-loaded-no-errors-in-javascript – ecarrizo