Что будет лучше для производительности, размера файла (и моего здравомыслия): Анимированный .gif
или спрайт с анимацией с использованием CSS (и JS, когда это необходимо)?
Размер файла
Итак, я честно не уверен, что будет лучше, потому что я не понимаю сжатия кадров в .gif
. Мое предположение было бы в том, что они окажутся равными, если я смогу правильно их расправить, но если это не так, или если это фактор по другой причине, дайте мне знать.
Основное преимущество здесь, на мой взгляд, относится к Spritesheets, так как я мог бы включать несколько анимаций на одном листе (и мы говорим здесь о сотнях анимированных спрайтов). И на основе одного из моих предыдущих вопросов, я знаю, что я могу легко вытащить один кадр в CSS с помощью image-rect()
. Где, как и в файле .gif
, я действительно могу включить только одну анимацию, поскольку каждая из них, вероятно, будет иметь разную продолжительность.
Добавление: Кроме того, некоторые анимации повторяются для заданного спрайта, поэтому в spritesheet будет только одна копия фреймов, где в качестве .gif
нужно будет иметь все кадров (по крайней мере, насколько мне известно).
Производительность
Угадывая здесь снова, моя интуиция подсказывает мне, что анимированные .gif
будут значительно быстрее, так как мне не придется управлять всеми анимациями, в то время как я делаю много JS-кода для других вещей. Но, я не знаю точно, возможно, браузеры имеют значительный успех с 30 + анимированными .gif
s.
Мое благосостояние
Справки сделаны для меня, поэтому моя работа была бы высокой в начале (механизм записи и анимации и ручное кодирование одного/каждого листа). Но как только он написан, он полезен для хорошего, и изменение в spritesheet требует минимальных изменений кода.
С другой стороны, анимированные файлы .gif
- это не торт, который нужно сделать в Photoshop (если у вас есть лучшая программа, сообщите мне об этом). И каждый из них должен быть ручной работы и длительный процесс. Но, как только они сделаны, мне не нужно их менять. Мои спрайты вряд ли изменятся очень быстро, так что, скорее всего, это будет одно и сделано.
Мой вопрос (tl; dr)
Что будет лучше масштабироваться для сотен анимаций с точки зрения размера файлов (включая передачу заголовков HTTP, поскольку оно будет проходить через Интернет), производительность в современных браузерах и простоту создания (самый низкий приоритет, но если вы можете сделать моя работа проще или спорить с этим, я был бы признателен), Анимированные .gif
файлы, созданные из спрайтов, или просто используя CSS и спрайты, которые у меня уже есть?
Примеры
VS