Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> тормозит анимация в IE6, помогите оптимизировать скрипт 
:(
    Опции темы
pgood
Дата 6.4.2007, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 7.3.2005

Репутация: нет
Всего: нет



Сделал плавно выезжающие кнопки
пример тут: http://forumedia.ru/mc_pack/ - см. слева от текста
Но почему-то в IE6 в отличии от Mozilla и Opera выезжают очень медленно, не в соответствии с заданным интервалом. Подскажите пожалуйста, в чем может быть причина тормозов.

Вот 2 функции: для выезжания и заезжания кнопочек (Оригинальный скрипт к примеру лежит тут http://forumedia.ru/mc_pack/js/default.js)

Код

function slideOut(id_item){
    if(this.id) id_item=this.id;
    var self = document.getElementById(id_item);
    if(self.timer_in_id!=undefined){//останавливаем таймер заезжания
        window.clearInterval(self.timer_in_id);
        self.timer_in_id=undefined;
    }
    
    var item_width = parseInt(self.style.width)+5;
    if(item_width>108){//если ширина максимальная
        if(self.timer_out_id){//останавливаем таймер
            window.clearInterval(self.timer_out_id);
            self.timer_out_id=undefined;
        }
        self.style.width='108px';
        return;
    }
    self.style.width=item_width+'px'; //увеличиваем ширину
    if(self.timer_out_id!=undefined) return; //если таймер уже установлен то выходим
    self.style.backgroundImage = 'url(images/'+id_item+'_s.gif)'; //устанавливаем новый фон    
    self.timer_out_id=window.setInterval('slideOut("'+id_item+'")',5); //запускаем таймер
}
function slideIn(id_item){
    if(this.id) id_item=this.id;
    var self = document.getElementById(id_item);
    if(self.timer_out_id!=undefined){//останавливаем таймер выезжания
        window.clearInterval(self.timer_out_id);
        self.timer_out_id=undefined;
    }
    
    var item_width = parseInt(self.style.width)-5;
    if(item_width<50){//если ширина максимальная
        if(self.timer_in_id){//останавливаем таймер
            window.clearInterval(self.timer_in_id);
            self.timer_in_id=undefined;
        }
        self.style.width='50px';
        return;
    }
    self.style.width=item_width+'px'; //увеличиваем ширину
    if(self.timer_in_id!=undefined) return; //если таймер уже установлен то выходим
    self.style.backgroundImage = 'url(images/'+id_item+'.gif)'; //устанавливаем новый фон
    self.timer_in_id=window.setInterval('slideIn("'+id_item+'")',5); //запускаем таймер
}

var left_panel_items = document.getElementById('div_panel_left').getElementsByTagName('div');
for(var i=0; i<left_panel_items.length; i++){
    left_panel_items[i].onmouseover = slideOut;
    left_panel_items[i].onmouseout = slideIn;
}

PM MAIL   Вверх
12345c
Дата 6.4.2007, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



У меня в IE и FF почти одинаково по скорости. И процент загрузки процессора одинаков. Может быть, при тесте на IE было что-то ещё включено? Зато в IE баг дизайна - вся колонка примерно 130 пикс спрятана за левый край.


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
pgood
Дата 6.4.2007, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 7.3.2005

Репутация: нет
Всего: нет



Странно... Нет у меня больше ничего не включено и пробовал я на разных компах...
Тогда у кого тоже тормозит отпишитесь пожалуйста.
PM MAIL   Вверх
pgood
Дата 24.4.2007, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 7.3.2005

Репутация: нет
Всего: нет



Причину торможения нашел - это бэкграунд, т.к. на фоне кнопочек установлено пару графических бэкграундов, IE6 начинает работать мееееедленно (по крайней мере на тех компах на которых я тестировал). Например выезжание одной кнопочки грузит AMD Athlon 1,6 GHz на 100% smile, а Pentium4 3 GHz на 50-60%. После того как убираешь бэкграунды - все начинает работать быстро
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0852 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.