Виктория U
Значит, весь код был переписан криво несколько раз
Анатолий
Да нет, просто одна мелочь была упущена с самого начала и при переписывании уцелела. Бывает сплошь и рядом )
Анатолий
Но чтобы понять какая - надо увидеть код
Flamie
Flamie
Ни так, ни так не работает
Анатолий
Первый аргумент должен быть функцией, которая выполняется по таймауту
Славик
setTimeout(() => $('.sprite').removeClass('active'), 1000)
Славик
и пробел не нужен
Виктория U
Как я и говорила...
Flamie
Ну, так работает, но это провоцирует другой баг. Объект начинает пропадать в ненужные моменты
Анатолий
Можно ещё добавить 1000 вторым аргументом к removeClass, но это будет анимация, возможно не то, что нужно
Flamie
То же самое происходило с закоментированным кодом здесь
Славик
вот если бы ты сразу, не глядя в код, угадала бы ошибку, это было бы куда прикольнее
Виктория U
Я говорила про то, что код изначально криво написан был
Анатолий
Славик
если код работает плохо, то в 95% случаев это потому что он криво написан, в остальных 5% по причине посторонних багов, но и там причина тоже кривонаписанный код
Flamie
Смотрите, проблема такая. Я пишу игру на жс, и в ней есть анимации исчезания/появления персонажей. Сделаны они через css.
Есть две картинки, одна должна пропадать по таймауту, после чего должна появляться следующая и в ней должна показываться анимация, сделанная на css transition
Анатолий
Славик
причина бага в человеке - это как бы беспроигрышное утверждение, хвастаться тут нечем
Flamie
Проблема такого плана, что между пропаданием прошлой картинки и появлением картинки с анимацией происходит мерцание. То есть первая картинка исчезает слишком рано, а вторая появляется слишком поздно
Анатолий
или не чейнятся?
Flamie
Я решила решить эту проблему добавлением таймаута на исчезновение первой картинки, но это не помогает и только провоцирует баги
Виктория U
Славик, успокойся
Анатолий
Анатолий
Это всё не в одном потоке делается?
Славик
Виктория U
Ты слишком импульсивный
Flamie
Flamie
Идут друг за другом
Анатолий
Или почему там мерцание?
Flamie
Все картинки в игре показываются без такой задержки, но именно картинки с анимацией такую задержку имеют перед появлением
Flamie
По неясной мне причине
Анатолий
Видимо потому что анимация
Анатолий
Она же с нуля начинается
Flamie
Там плавное затухание с 1.0 opacity
Славик
Ты слишком импульсивный
ты ошибаешься =) попробуй перечитать с другой интонацией, я пытаюсь до тебя донести интересную логическую мысль, но мне абсолютно пофиг
Flamie
В песочницу трудно запихать целую игру)
Flamie
Я просто движок вообще с нуля написала, и проблемы начались на этапе анимаций
Славик
В случае с жквери, я бы сделал всё это на анимациях жквери, тем более они хорошо чейнятся
Виктория U
Ты неверояино мудр, Славик
Анатолий
Кстати да, кто не знал про анимацию addClass
http://jsfiddle.net/6hvZT/1/
Анатолий
Но это только с jQuery UI
Анатолий
если нечем - вот эта штука есть https://www.screentogif.com/?l=ru_ru
Flamie
Я не могу записать. Я записываю гифку, но кадров не хватает, чтобы увидеть мерцание
Анатолий
а на телефон если )
Flamie
Анатолий
Понял. Они типа сначала пропадают, а потом фейдятся до нуля?
Flamie
Да.
Анатолий
А если фейдить, а пропадать по таймауту?
Flamie
Но учти, что это две разные картинки фактически
Flamie
Да я так и пыталась сделать...
Flamie
Вот же, по таймауту исчезновение. Но оно не работает
Dmitry
Flamie
Это он и есть
Анатолий
Выглядит так, как будто код, изменяющий видимость класса отрабатывает до транзишена
Flamie
Да, так и есть
Анатолий
А должен сразу после него
Анатолий
А если сразу после него, то что будет?
Flamie
Я меняла код местами, но это не помогло
Анатолий
А видимость меняется как и чем?
Анатолий
Опасити через снятие класса, а видимость отдельно?
Flamie
Анатолий
Ну смотри. Снижаешь опасити в течение секунды. Видимость снимаешь после этого, тогда не будет заметно мерцания, потому что там и так опасити ноль
Анатолий
Не работает?
Flamie
У меня спрайты без анимации работают не через опасити, а через display: none
Flamie
И там нечего снижать, собственно
Анатолий
Вот этот самый дисплей нон должен назначаться с задержкой на секунду
Flamie
Собственно он и назначается с задержкой, но это провоцирует жуткие баги. Спрайты начинают пропадать и появляться при клике на переключение текста
Анатолий
А засними это
Flamie
Вот здесь таймаут отключен
Анатолий
Вспоминается проблема, когда пользователь может слишком быстро взаимодействовать с элементами и они не успевают доанимироваться, когда от них требуется уже новая анимация
Flamie
Анатолий
Я решал это через назначение таймаутов и снятие всех таймаутов, если вдруг потребовалась новая анимация