Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   скроллинг по событию mousewheel (https://javascript.ru/forum/jquery/43304-skrolling-po-sobytiyu-mousewheel.html)

ponyspy 30.11.2013 16:08

скроллинг по событию mousewheel
 
Здравствуйте!
Я делаю скроллер для картинок и столкнулся с проблемой...

Есть html структура:
<div class='background_block'>
	<div class='background_item'></div>
	<div class='background_item'></div>
	<div class='background_item'></div>
	<div class='background_item'></div>
</div>

Необходимо по событию mousewheel прокручивать блоки background_item, так чтобы при выходе за верхнюю грницу скроллинг переходил на следующий блок background_item

Есть вариант события:
count = $('.background_item').length - 1;
var scroll = 0;

function backScroller (event) {
	scroll += event.originalEvent.wheelDelta;
	$('.background_item').eq(count).css('margin-top', scroll);

	if ($('.background_item').eq(count).offset().top + $('.background_item').eq(count).height() <= 0) {
		if (count != 0) {
			scroll = 0;
			count--;
		}
		else {
			count = 0;
			scroll = 0;
		}
	}
	else if ($('.background_item').eq(count).offset().top >= 0) {
		scroll = - $('.background_item').eq(count).height();
		count++;
	}
}

Я никак не могу решить проблему с остановкой выполнения mousewheel при достижении граничных значений count.

Так же необходимо при остановке скролла в промежутке между сменой background_item выполнить другой обработчик. То есть необходимо отслеживать происходит в данный момент скроллинг или нет.

Спасибо!


Часовой пояс GMT +3, время: 09:39.