Здравствуйте. Есть такая функция для реализации скроллинга в div'е(используется класс Slider из mootools):
function makeScrollbar(content, scrollbar, handle, horizontal, ignoreMouse){
if (!horizontal || (content.getScrollSize().x > content.getSize().x)) {
if (horizontal || (content.getScrollSize().y > content.getSize().y)) {
var steps = (horizontal ? (content.getScrollSize().x - content.getSize().x) : (content.getScrollSize().y - content.getSize().y))
var slider = new Slider(scrollbar, handle, {
steps: steps,
mode: (horizontal ? 'horizontal' : 'vertical'),
onChange: function(step){
var x = (horizontal ? step : content.getScroll().x);
var y = (horizontal ? content.getScroll().y : step);
content.scrollTo(x, y);
}
}).set(0);
setScrollDown = function (){
slider.set(content.getScrollSize().y);
}
setScrollUp = function (){
slider.set(0);
}
if (!horizontal) {
$$('.v-up').addEvent('mousedown', function(){
slider.set(slider.step - 30);
});
$$('.v-down').addEvent('mousedown', function(){
slider.set(slider.step + 30);
});
}
if (horizontal) {
$$('.h-left').addEvent('mousedown', function(){
slider.set(slider.step - 30);
});
$$('.h-right').addEvent('mousedown', function(){
slider.set(slider.step + 30);
});
}
if (!(ignoreMouse)) {
var mousewheel = function(e){
e = new Event(e).stop()
slider.set(slider.step - e.wheel * 30);
}
$$(content, scrollbar).addEvent('mousewheel', mousewheel);
}
$(document.body).addEvent('mouseleave', function(){
slider.drag.stop()
});
}
else {
$$('.vscroll').setStyle('visibility', 'hidden');
}
}
else {
$$('.hscroll').setStyle('visibility', 'hidden');
}
}
Все работает нормально, если скроллируемый контент статичный, но если применяю innerHTML, то высота скроллируемого контента соответственно увеличивается и он обрезается. Как мне правильно переопределить скролл после увеличения высота контента? По сути меняется content.getScrollSize().y, и мне надо создать новый slider.