Подтвердить что ты не робот

Прокрутка JQuery Mousewheel горизонтально

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

В моей jQuery включена последовательность:

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>

<!--jquery validation script-->
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>

<!--Smooth Scroll-->
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>

Мой код, как показано ниже:

<script type="text/javascript" src="js/jquery.mousewheel.min.js"></script>


<script>
$.noConflict();

$(function() {
        $("body").mousewheel(function(event,delta) {
            this.scrollLeft -= (delta * 30);

            event.preventDefault();
        })
    })

$(function() {...});

$(document).ready(function() {

        $('#form').validate({...});

        $("#submit").click(function()
        {...});
    })
</script>

Мой "body" CSS, как показано ниже:

html {
width:100%;
overflow-y:hidden;
overflow-x: scroll;
}
body{

}

В настоящий момент я сомневаюсь в следующем:

<!--Smooth Scroll-->
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>

который сбой с помощью мыши. Я думаю.

Прокрутка мыши работает, единственная проблема заключается в том, что прокрутка мыши не является гладкой, иногда останавливается, иногда даже не может двигаться, это не моя проблема с мышью. Я не уверен, что из-за этого, потому что я пытался отладить его уже 2 дня. Кто-нибудь может поделиться своими мыслями по этому вопросу?

Я нашел решение, но это выглядело странно по моему делу. Прокрутите до определенной части и застревайте посередине. (Просто панель прокрутки.) Я использую Chrome для Mac для тестирования. Кстати, есть ли такое решение, как AutoShift во время прокрутки, потому что это сработало для меня, когда я нажал кнопку Shift.

4b9b3361

Ответ 1

После 3 дней поиска ответа я наконец нашел решение без плагинов JQuery!

// http://www.dte.web.id/2013/02/event-mouse-wheel.html
(function() {
function scrollHorizontally(e) {
    e = window.event || e;
    var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));
    document.documentElement.scrollLeft -= (delta*40); // Multiplied by 40
    document.body.scrollLeft -= (delta*40); // Multiplied by 40
    e.preventDefault();
}
if (window.addEventListener) {
    // IE9, Chrome, Safari, Opera
    window.addEventListener("mousewheel", scrollHorizontally, false);
    // Firefox
    window.addEventListener("DOMMouseScroll", scrollHorizontally, false);
} else {
    // IE 6/7/8
    window.attachEvent("onmousewheel", scrollHorizontally);
}
})();

Если этот код по-прежнему не работает, проблема здесь не в этом.

Ответ 2

Это JQuery-версия ответа @TooJuniorToCode. Это короче и идеально, если вы уже используете jQuery. Надеюсь, это будет полезно для кого-то.

    $('body').on('mousewheel DOMMouseScroll', function(event){

        var delta = Math.max(-1, Math.min(1, (event.originalEvent.wheelDelta || -event.originalEvent.detail)));

        $(this).scrollLeft( $(this).scrollLeft() - ( delta * 40 ) );
        event.preventDefault();

    });

Ответ 3

Чтобы прокрутить веб-сайт по горизонтали, пожалуйста, используйте следующий код:

<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js?ver=1.3.2'></script>
<script type='text/javascript' src='/js/jquery.mousewheel.min.js'></script>

Прикрепленное событие колеса мыши к телу:

$(function() {

   $("body").mousewheel(function(event, delta) {

      this.scrollLeft -= (delta * 30);

      event.preventDefault();

   });

});

См. демонстрацию:

http://css-tricks.com/snippets/jquery/horz-scroll-with-mouse-wheel/

Ответ 4

    $("html, body").mousewheel(function(event, delta) {
        this.scrollLeft -= (delta * 30);
        event.preventDefault();
    });

У Chrome есть прокрутка по телу, Firefox имеет прокрутку по html