jPanel прокручивает тело, когда достигнут конец
Я использую плагин jQuery jPanelMenu для веб-сайта. Поскольку навигация относительно длинная, на панели появляется полоса прокрутки. Однако, как только я доберусь до конца указанной панели, я тоже начну прокручивать тело. Есть ли способ предотвратить это?
1 ответ
Решение
Поскольку вы должны предотвратить прокрутку родительского элемента, вы должны использовать событие stopPropagation().
Проверьте JSFiddle: - JSFiddle
$(document).on('DOMMouseScroll mousewheel','#jPanelMenu-menu', function(ev) {
var $this = $(this),
scrollTop = this.scrollTop,
scrollHeight = this.scrollHeight,
height = $this.height(),
delta = (ev.type == 'DOMMouseScroll' ?
ev.originalEvent.detail * -40 :
ev.originalEvent.wheelDelta),
up = delta > 0;
var prevent = function() {
ev.stopPropagation();
ev.preventDefault();
ev.returnValue = false;
return false;
}
if (!up && -delta > scrollHeight - height - scrollTop) {
$this.scrollTop(scrollHeight);
return prevent();
} else if (up && delta > scrollTop) {
$this.scrollTop(0);
return prevent();
}
});