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();
}
});
Другие вопросы по тегам