Изменение цвета фона на событии Click / Touch не работает на сенсорных устройствах - PullRequest
0 голосов
/ 08 октября 2018

Когда на сенсорном устройстве отображается оверлейное меню (проверено на iphone и ipad), отображается весь контент, например ссылки и т. Д., Но цвет фона не меняется с прозрачного.

Все работаетправильно на моем рабочем столе и других, кажется, просто прикосновение.Есть ли в моем коде ошибка, из-за которой он не работает на мобильном телефоне?

https://codepen.io/whitinggg/pen/bLzxGG

$(document).ready(function () {

    $(".menu-btn a").on('click touch', function () {
        var scroll = $(window).scrollTop();
        $(".overlay").fadeToggle(200);
        $(this).toggleClass('btn-open').toggleClass('btn-close');

        if( $(this).hasClass('btn-close') ) {
            $(".navbar").css("background-color", "transparent");
        }
        else if( scroll > 100) {
            $(".navbar").css("background-color", "#CEB400");
        }
    });

    // $('.overlay').on('click', function () {
    //    $(".overlay").fadeToggle(200);
    //    $(".menu-btn a").toggleClass('btn-open').toggleClass('btn-close');
    // });

    $('.menu a').on('click touch', function () {
        $(".overlay").fadeToggle(200);
        $(".menu-btn a").toggleClass('btn-open').toggleClass('btn-close');
    });

});

$(document).ready(function() {
    $(window).scroll(function() {
        var scroll = $(window).scrollTop();
        if (scroll > 100) {
            if($('.overlay:visible').length == 0) {
                $(".navbar").css("background-color", "#CEB400");
            }
        } else {
            $(".navbar").css("background-color", "transparent");
        }
    });
});

1 Ответ

0 голосов
/ 08 октября 2018

Я не верю, что у jQuery (или jQuery mobile) есть событие "touch".Возможно, вы ищете нажмите .

...