Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Скрол в телефоне (https://javascript.ru/forum/events/69318-skrol-v-telefone.html)

biryukovm 14.06.2017 07:59

Скрол в телефоне
 
Привет всем.
Ищу информацию по скролу.

У меня есть боковое меню которое должно скролиться, а сайт стоять на месте.

Но как показала практика когда я дохожу до конца или верхушки сайта или до низу то сайт начинает бежать за мной.

Я нашел решение в этом скрипте

$(document).ready(function() {
    $('#menu-foter-mobail').on('mouseenter touchstart touchmove  touchend', function (event) {
       $("body").css("overflow","hidden"); 
    }).on('mouseleave touchend',  function(){
       $("body").css("overflow","auto");
    });
});


Но опять же протестировав нашел такой глюк
Скрипт работает и даже хорошо но у телефонов есть такой момент когда палец уходит от тача скорость прокрутки остается что дает опять же на страницу

Как можно отключить этот остающийся скрол после отпускания пальца ?
Подскажите я уже весь гугл пересмотрел не нашел.

Dilettante_Pro 14.06.2017 12:21

biryukovm,
А что это у вас touchend и там, и там присутствует?

biryukovm 14.06.2017 12:34

Цитата:

Сообщение от Dilettante_Pro (Сообщение 455454)
biryukovm,
А что это у вас touchend и там, и там присутствует?

Изначально было 'mouseenter touchstart' ну а потом эксперементы

рони 14.06.2017 13:28

biryukovm,
http://javascript.ru/forum/events/62...prokrutki.html

блокировать прокрутку над блоком заменив её своей

biryukovm 15.06.2017 12:51

Цитата:

Сообщение от рони (Сообщение 455458)
biryukovm,
http://javascript.ru/forum/events/62...prokrutki.html

блокировать прокрутку над блоком заменив её своей

Увы не могу дополнительные блоки встовлять уже увы поздно код расписан и осталь толька вот этот оставшийся скрол от тача отключить

рони 15.06.2017 13:24

Цитата:

Сообщение от biryukovm
Увы не могу дополнительные блоки встовлять

:blink: причём тут ещё блоки - решение не для телефона, но может чем поможет.
<script>
window.addEventListener("DOMContentLoaded", function() {
    var node = document.querySelector("#menu-foter-mobail");
    function wheel(event) {
        var target = event.target;
        while (target != document) {
            if (target == node) {
                event.preventDefault();
                var delta = 0;
                if (event.wheelDelta) delta = event.wheelDelta / 120;
                else if (event.detail) delta = -event.detail / 3;
                node.scrollTop -= 30 * delta;
                break;
            }
            target = target.parentNode
        }
    }
    window.addEventListener("mousewheel", wheel, false);
    window.addEventListener("DOMMouseScroll", wheel, false)
});
</script>


Часовой пояс GMT +3, время: 08:58.