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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> scriptaculous Move дергается, проблема с плавностью перемещения div 
:(
    Опции темы
johnbrown
Дата 8.2.2010, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



На странице есть большой div, с кучей элементов в нутри, которй по загрузке страницы должен плавно вплывать на страницу. Решил пользовать Effect.Move из scriptaculous. Вобщем, он, конечно, вплывает, но не плавно, а с дерганиями. Вот такой вот код:
Код

var Mover = Class.create();
Mover.prototype = {
    width: 0
    ,el: false
    ,duration: false
    ,initialize: function(el, duration) {
        this.el = el;
        this.duration = duration;
        this.initElement();
        this.move();
        Event.observe(window, 'resize', this.move.bind(this));
    }
    ,initElement: function() {
        var el = $(this.el);
        var width = el.getWidth();
        el.setStyle({ left: '-'+width+'px', display: 'block' });
    }
    ,move: function() {
        var width = document.viewport.getWidth();
        var x, duration;
        if(this.width == 0) {
            this.width = width;
            x = this.width - 5;
            duration = this.duration;
        }else {
            var delta = width - this.width;
            this.width = width;
            x = delta - 5;
            duration = 1;
        }
        new Effect.Move(this.el, {
            x: x
            ,y: 0
            ,duration: duration
            ,afterFinish: this.fireFinishEvent.bind(this)
        })
    }
    ,fireFinishEvent: function() {        
        this.callback.call(this);
    }
}

var mover;
window.onload = function() {                
    mover = new Mover('moving-container', 3);
        
}

Можете подсказать, как оно оптимизировать, чтоб небыло дерганий? Или другой фреймворк использовать? Если да, то какой порекомендуете?
PM MAIL   Вверх
ArNic
Дата 8.7.2010, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



1. Я предлагаю использовать jquery
2. Не уверен что это поможет, если там много элементов то скорее всего тормозит прорисовка...
3. Если не ошибаюсь в коде у тебя слой расширяется по 5 пикселей. Сделай по 1 пикселю но цикл сделай быстрее.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




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


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

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