Вопрос по scroll, html, browser, javascript – Запрет прокрутки колесика мыши, но не событие полосы прокрутки. JavaScript

7

Мне нужно сделать прокрутку веб-страницы только с помощью полосы прокрутки. Я пытался найти способ поймать событие полосы прокрутки, но, как я вижу, это невозможно. В настоящее время я использую эти функции:

function preventDefault(e) {
    e = e || window.event;
    if (e.preventDefault) {
        e.preventDefault();
    } else {
        e.returnValue = false;
    }
}
function wheel(e) {
    preventDefault(e);
}
function disable_scroll() {
    if (window.addEventListener) {
        window.addEventListener('DOMMouseScroll', wheel, false);
    }
    window.onmousewheel = document.onmousewheel = wheel;
}

Но они не очень полезны в моей ситуации, потому что они блокируют все события прокрутки. Есть ли у вас какие-либо идеи? Я думаю об этом уже 3 дня, и я нене могу найти никакого ответа (и вопросы также). Спасибо!

Я просто поместил ваши функции в консоль, и она, кажется, работала нормально. Я могу нажать и перетащить полосу прокрутки, но колесо мыши не работает. Это то, что вы хотите? Villarrealized

Ваш Ответ

3   ответа
3

$(window).bind('mousewheel DOMMouseScroll', function(event){ return false});

Если вы хотите предотвратить прокрутку колесиком мыши в одном элементе DOM, попробуйте следующее:

$('#{element-id}').bind('mousewheel DOMMouseScroll', function (e) { return false; });

DOMMouseScroll событие используется в Firefox, поэтому вы должны слушать оба.

Работал как шарм! Я Stender
1

и он отлично работает Прокрутка с помощью панели работает нормально, но колесо мыши выигралот работа.

Причина, по которой яЯ делаю это таким образом, что у меня есть пользовательский код для прокрутки, как я хочу, но если нене добавлять код, он просто не будетпрокрутить колесо.

window.addEventListener('wheel', function(e) {  
    e.preventDefault();
    // add custom scroll code if you want
}
18

Вы можете попробовать это;

window.onwheel = function(){ return false; }

Это предотвратит прокрутку окна колесиком мыши. Если содержание <DIV> или другой элемент можно прокручивать, вы тоже можете предотвратить это;

document.getElementById('{element-id}').onwheel = function(){ return false; }

Приветствия ...

Похожие вопросы