Показать сообщение отдельно
  #1 (permalink)  
Старый 11.11.2012, 18:05
Новичок на форуме
Отправить личное сообщение для Alemikh Посмотреть профиль Найти все сообщения от Alemikh
 
Регистрация: 11.11.2012
Сообщений: 2

Как записать изменение значения?
Здравствуйте! Я новичок.
Копаюсь с jquery tinyscrollbar и нашел такой баг:
если блок с содержимым меньше прокручиваемой области, то убирается полоса прокрутки, однако не убирается возможность прокрутить колесом мыши содержимое (содержимое при прокрутке уезжает вверх, оставляя под собой пустое место).
Пытался разобраться в коде этого плагина, и примерно понял, как исправить баг, но не знаю, как это записать:
Код:
$.tiny.scrollbar = {
options: {	
	axis: 'y', // vertical or horizontal scrollbar? ( x || y ).
	wheel: 90,  //how many pixels must the mouswheel scroll at a time.
	scroll: true, //enable or disable the mousewheel;
	size: 'auto', //set the size of the scrollbar to auto or a fixed number.
	sizethumb: 'auto' //set the size of the thumb to auto or a fixed number.
}
};
Параметр scroll определяет возможность прокручивать область колесом. Я так понял, надо при инициализации и обновлении проверять, меньше ли область с содержимым области прокрутки и если да, изменять значение scroll.

Вот инициализация и обновление:
Код:
function initialize() {	
	oSelf.update();
	setEvents();
	return oSelf;
}
this.update = function(sScroll){
	oViewport[options.axis] = oViewport.obj[0]['offset'+ sSize];
	oContent[options.axis] = oContent.obj[0]['scroll'+ sSize];
	oContent.ratio = oViewport[options.axis] / oContent[options.axis];
	oScrollbar.obj.toggleClass('disable', oContent.ratio >= 1);
			
	oTrack[options.axis] = options.size == 'auto' ? oViewport[options.axis] : options.size;
	oThumb[options.axis] = Math.min(oTrack[options.axis], Math.max(0, ( options.sizethumb == 'auto' ? (oTrack[options.axis] * oContent.ratio) : options.sizethumb )));
	oScrollbar.ratio = options.sizethumb == 'auto' ? (oContent[options.axis] / oTrack[options.axis]) : (oContent[options.axis] - oViewport[options.axis]) / (oTrack[options.axis] - oThumb[options.axis]);
	iScroll = (sScroll == 'relative' && oContent.ratio <= 1) ? Math.min((oContent[options.axis] - oViewport[options.axis]), Math.max(0, iScroll)) : 0;
	iScroll = (sScroll == 'bottom' && oContent.ratio <= 1) ? (oContent[options.axis] - oViewport[options.axis]) : isNaN(parseInt(sScroll)) ? iScroll : parseInt(sScroll);
	setSize();
};
Подскажите пожалуйста, куда что записать (изначально в коде уже есть проверка того, какая область больше:
Код:
oViewport[options.axis] = oViewport.obj[0]['offset'+ sSize];
oContent[options.axis] = oContent.obj[0]['scroll'+ sSize];
oContent.ratio = oViewport[options.axis] / oContent[options.axis];
)
Спасибо!
Ссылка на плагин
Ответить с цитированием