Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Родился нежный лирический вопрос


Автор: abelly 9.6.2004, 08:06
суть проблемы – есть ячейка таблицы – в ней анимированный gif (некая постоянная картинка с меняющимся цветом фона – 4 цвета) – gif достаточно тяжелый –
Что то где то глубоко в душе подсказывает – что если картинку в тупую воткнуть в ячейку – а цвет фона ячейки заставить меняться – скажем – через JS – то – вроде как поменьше мегов будет в этом блоке.
Если есть соображения – поделитесь плиз - за код буду признателен особо.

abelly

Автор: Gold Dragon 9.6.2004, 08:46
Насколько тяжёлая картинка? Может лучше пару секунд подождать и не мудрить..

Если меняется только фон вокруг картинки и фон прямоугольный, то конечно лучше менять фон ячейки.

Если нет, то можно сделать несколько простых Gif`ов, сделать предварительную загрузку картинок и сменять их через x-времени, а первая так и так загрузиться..

Автор: Sardar 9.6.2004, 09:13
Оптимизируй .gif, метры он не должен весить...
Вот пример на скорую руку:
Код
var bgcolors=["#0803bd","#00bcfa", "#30fe1e", "#f5f481"];
//реестр с инфой [ид_обьекта, первый_цвет, таблица_цветов]
var anims=[["bgimg1", 0, bgcolors],["bgimg2", 3, bgcolors],["bgimg3", 0, ["#489806","#818bf5","#00fa25"]]];
function init_anim() {
for(var i=0; i<anims.length; i++) {
 var obj=document.getElementById(anims[i][0]);
 if(obj) anims[i][0]=obj;
 else delete anims[i]; //элемента нет, для отладки поставь alert
}
window.setInterval(chng_anim,1000); //ставим таймер
}
function chng_anim() {
for(var i=0; i<anims.length; i++) {
 anims[i][1]=(anims[i][1]+1)%anims[i][2].length;
//изменяем атрибуты обьекта, это может быть что угодно, не только цвет
 anims[i][0].style.backgroundColor=anims[i][2][anims[i][1]];
}
}
.................
<body onLoad='init_anim();'>
<table>
<tr><td id='bgimg1'>Test</td></tr>
<tr><td id='bgimg2'>Test</td></tr>
<tr><td id='bgimg3'>Test</td></tr>
</table>
</body>


Цитата(Red)
сделать предварительную загрузку картинок и сменять их через x-времени

Плохая идея, менять фон .gif картинками, тем более что в гифе только 256 цветов.

Автор: abelly 9.6.2004, 09:53
всем спс

пока взял на вооружение - попробую

Автор: Ignat 9.6.2004, 10:14
А как насчет Macromedia Flash?
Векторная анимация + Jpeg компрессия - мне кажется оптимальнее.

А к тому, что здесь написано, если картинка тяжеловесная, то можно сохранить её как jpg,
залив фон каким-либо цветом и применить в css фильтр chroma, но он с жпегами хреновенько работает, но попытаться можно.

Автор: Gold Dragon 9.6.2004, 19:10
Sardar
Согласен, что менять фон GIF`ами не самый лучший вариант, а что делать если вся картинка не прямоугольная (квадратная), к примеру, овальная (круглая).

Что лучше, загружать анимированный GIF или использовать предварительную загрузку простых GIF`ов. Первый вариант проще, но придётся ждать загрузки всей картинки.

Автор: Sardar 10.6.2004, 00:43
2 Red Dragon загрузить анимацию одним гифом будет быстрее, проще, лучше. Сколько времени уйдет на коннекты к серверу и прочее при загрузке кадров отдельно + цельный гиф можно оптимизировать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)