@fiyam

Как сделать скролинг всего сайта на jquery или имитацию сенсорного экрана?

Хочу сделать прокрутку с помощью левой кнопки мыши, чтобы у пользователя появилась возможность прокручивать контент как на мобильном устройстве. В интернете нашел пример, переделал как смог под свои нужды, но не могу заставить его работать на всей странице. Прошу помощи профессионалов :)

https://jsfiddle.net/fiyami/8q2ydgxr/
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 1
@fiyam Автор вопроса
Этот вроде заработал

jQuery(function ($) {
    var $doc = $(document),
        ratio = $doc.width() / $(window).width(), //отношение окна к общей ширене блока, чтобы тянуть весь блок.
        mousepos, to;
    $doc.on('mousedown', '#content', dragstart);

    function dragstart(e) {
        e.preventDefault();
        mousepos = e.screenY;
        $doc.on('mousemove.drag', drag); //в неймспейсе drag, чтобы потом отключить безболезненно для остальных листенеров
        $doc.one('mouseup', dragstop);
    }

    function drag(e) {
        clearTimeout(to);
        var delta = (e.screenY - mousepos) * ratio / -1;
        to = setTimeout(function () { // таймаут чтобы события от мыши не перекрывали друг друга, 
            $doc.scrollTop($doc.scrollTop() + delta);
            mousepos = e.screenY;
        }, 1);
    }

    function dragstop() {
        $doc.off('mousemove.drag'); //отключаем свой mousemove.
    }

});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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