Что я получаю от передней стороны () пустого контейнера станд.?

Вы анимируете max-height, что вызывает перекомпоновку макета, которая требует интенсивного использования графического процессора. См. https://csstriggers.com/ для свойств CSS, которые вызывают компоновку, рисование или составные вычисления. Наиболее эффективным способом было бы сделать это в JavaScript для вычисления границ заранее и использовать transform вместе с requestAnimationFrame для манипулирования измерениями. Но я должен признать, что это немного сложно. У Пола Льюиса есть много хороших материалов о технике FLIP: https://aerotwist.com/blog/flip-your-animations/

47
задан Melebius 15 August 2017 в 08:00
поделиться

4 ответа

Вы получаете неопределенное поведение - необходимо проверить, что контейнер содержит что-то с помощью пустого () (который проверяет, пуст ли контейнер) прежде, чем назвать переднюю сторону ().

54
ответ дан 26 November 2019 в 19:47
поделиться

Вы получаете неопределенное поведение.

Получить использование проверки диапазона в (0). Если это перестало работать, Вы получаете a out_of_range исключение.

13
ответ дан graham.reeds 26 November 2019 в 19:47
поделиться

Неопределенное поведение

1
ответ дан anil 26 November 2019 в 19:47
поделиться

Вы имеете, всегда должны быть уверены, что Ваш контейнер не пуст прежде, чем назвать переднюю сторону () на этом экземпляре. При назывании пустым (), поскольку безопасность хороша.

Конечно, в зависимости от Вашего дизайна программы, всегда имея непустой контейнер мог быть инвариантный оператор, разрешающий Вам предотвратить и сохранить вызов для освобождения () каждого раза, когда Вы называете переднюю сторону (). (или по крайней мере в некоторой части Вашего кода?)

Но как указано выше, если Вы хотите избежать undefinied поведения в своей программе, сделайте это сильным инвариантом.

1
ответ дан yves Baumes 26 November 2019 в 19:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: