john.brown
просто кулибин
scriptaculous Effect.Move дергается
На странице есть большой div, с кучей элементов в нутри, которй по загрузке страницы должен плавно вплывать на страницу. Решил пользовать Effect.Move из scriptaculous. Вобщем, он, конечно, вплывает, но не плавно, а с дерганиями. Вот такой вот код:
Можете подсказать, как оно оптимизировать, чтоб небыло дерганий? Или другой фреймворк использовать? Если да, то какой порекомендуете?
На странице есть большой 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);
}
}