За последние 24 часа нас посетили 19559 программистов и 1601 робот. Сейчас ищут 1676 программистов ...

Как запретить прокрутку страницы при прокрутке div?

Тема в разделе "JavaScript и AJAX", создана пользователем shurik_shink, 28 мар 2016.

  1. shurik_shink

    shurik_shink Новичок

    С нами с:
    17 май 2015
    Сообщения:
    79
    Симпатии:
    0
    Как запретить вертикальную прокрутку страницы при грозонтальной прокрутке внутреннего div?

    Для div#album_list реализована горизонтальная прокрутка при прокрутке колесика миши

    Но при горизонтальной прокрутке элементов div одновременно идет прокрутка страницы.
    Как запретить прокрутку страницы когда идет прокрутка div

    Код (PHP):
    1. <style>
    2. div#album_list{
    3.     overflow-x: scroll;
    4.     height: 225px;
    5.     width: 800px;
    6.     white-space: nowrap;
    7.     background-color: red;
    8.     border: 2px solid black;
    9.     position: relative;
    10. }
    11. div.album{
    12.     display: inline-block;
    13.     background-color: blue;
    14.     width: 200px; height: 200px;
    15.     padding: 0px; margin: 0px; 
    16.     border: none;
    17. }
    18. div.album_separator{
    19.     display: inline-block;
    20.     height: 200px; width: 20px;
    21.     background-color: white;
    22.     padding: 0px; margin: 0px;  
    23.     border: none;
    24. }
    25. </style>
    26. <br>1<br><br>1<br><br>1<br><br>1<br><br>1<br><br>1<br><br>1<br>
    27. <div id='album_list'>
    28. <div class="album">1</div><div class="album_separator"> </div><div class="album"> </div><!--
    29. --><div class="album_separator"> </div><div class="album"> </div><!--
    30. --><div class="album_separator"> </div><div class="album"> </div><!--
    31. --><div class="album_separator"> </div><div class="album"> </div><!--
    32. --><div class="album_separator"> </div>
    33. </div>
    34. <br>2<br><br>2<br><br>2<br><br>2<br><br>2<br><br>2<br><br>2<br><br>2<br><br>2<br><br>2<br><br>2<br><br>2<br><br>2<br><br>2<br>
    35.  
    36.  
    37. <script>
    38.     function scroll_albums(event) {
    39.         var div = document.getElementById("album_list");
    40.         if ((event.wheelDelta || event.detail) > 0) //або 1 або 2 mousewheel для різних браузерів 
    41.             div.scrollLeft -= 30;
    42.         else
    43.             div.scrollLeft += 30;
    44.         return false;
    45.     }
    46.     
    47.     var div = document.getElementById("album_list");
    48.     if (div.addEventListener) {
    49.         // IE9, Chrome, Safari, Opera
    50.         div.addEventListener("mousewheel", scroll_albums);
    51.         
    52.         // Firefox
    53.         div.addEventListener("DOMMouseScroll", scroll_albums);
    54.     }
    55.     else {
    56.         // IE 6/7/8
    57.         div.attachEvent("onmousewheel", scroll_albums);
    58.     }
    59. </script>
    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    preventDefault помогает?
     
  3. shurik_shink

    shurik_shink Новичок

    С нами с:
    17 май 2015
    Сообщения:
    79
    Симпатии:
    0
    Добавил event.preventDefault(); в начало обработчика и получил то что хотел

    Спасибо.