2015-03-26 4 views
0

На моем сайте у меня это так мой свиток заблокирован:Выделите конкретный DIV при прокрутке вниз или прокрутки вверх

body { 
    overflow: hidden; 
    height: 100%; 
} 

и нажатие кнопок прокручивает до определенного DIV, все дивы находятся под каждым другой, я хотел бы знать, можно ли проверить, пытается ли пользователь «прокручивать» вниз или вверх, в то время как прокрутка заблокирована, поэтому, если они попробуют прокрутить вниз с помощью колеса мыши, я хочу знать, как это сделать. Я могу прокрутить вниз или до следующего div.

Любая помощь приветствуется.

+0

Javascript 'window.onscroll' может быть использован для этого, но если у вас есть что-то на месте, препятствующее прокрутке, то я не думаю, что это сработает. * Не на 100% уверен, поскольку я не заблокировал прокрутку и попытался прослушать события прокрутки. * Я бы рекомендовал отображать более подходящий исходный код и ваши попытки. – NewToJS

+0

Насколько я знаю, событие прокрутки не будет запущено, если в главном окне нет прокрутки. Возможным решением было бы вместо тела обернуть содержимое внутри DIV, нанести немного прокрутки на тело и начать движение. – Yameen

+0

Возможно, вы захотите взглянуть на что-то вроде [fullPage.js] (http: // alvarotrigo.com/fullPage/). – Alvaro

ответ

0

Это скажет вам, прокручиваются ли они или вверх. Тогда вам придется иметь дело с переходом самостоятельно.

Но в любом случае, если вы ищете более протестированное решение, я хотел бы призвать вас использовать уже существующий плагин такой, как fullPage.js, который обеспечит совместимость старого браузера, нажмите обнаружение, правильного решения для трекпадов и Apple, ноутбуки/Magic Mouse, поддержка размеров и множество других полезных функций.

addMouseWheelHandler(); 

function MouseWheelHandler(e) { 
    // cross-browser wheel delta 
    e = window.event || e; 
    var value = e.wheelDelta || -e.deltaY || -e.detail; 
    var delta = Math.max(-1, Math.min(1, value)); 


    //scrolling down? 
    if (delta < 0) { 
     console.log("scrolling down"); 
    } 

    //scrolling up? 
    else { 
     console.log("scrolling up"); 
    } 

    return false; 
} 


function addMouseWheelHandler() { 
    if (document.addEventListener) { 
     document.addEventListener('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper 
     document.addEventListener('wheel', MouseWheelHandler, false); //Firefox 
    } else { 
     document.attachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8 
    } 
} 
Смежные вопросы