Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Модальное окно (Работает на компьютере и в Windows Phone, но не на Android.iOS) (https://javascript.ru/forum/jquery/63691-modalnoe-okno-rabotaet-na-kompyutere-i-v-windows-phone-no-ne-na-android-ios.html)

mn8156 23.06.2016 12:24

Модальное окно (Работает на компьютере и в Windows Phone, но не на Android.iOS)
 
Здравствуйте! Столкнулся со странной ситуацией: скрипт правильно работает на компе и на Windows Phone (!), а на Androi, iOS не правильно.

Как должно быть: модальное окно, которое появляется при клике на заголовок. Закрывается если кликаем куда угодно в окне, кроме заголовка от которого он выпал и клика на само окно. И при изменении размера окна браузера.

Проблема: на Android и iOS окно пропадает после прокрутки экрана(но не всегда). Работает не предсказуемо.

Вот код:

jQuery(document).ready(function () {

    $(".category-header__title").on("click", function(){
        //Появляется при клике
        var offset = $(this).offset();
        var offsetArrow = $(this).find(".h2-arrow-bottom").offset();


        $(".rubrik__drop-list").css({"display":"block",
                                    "top": offset.top+40,
                                    "left": offset.left });
    })


    $("body").on("click", function (e) {       

        //Закрытие при клике куда угодно , кроме заголовка и самого окна
        if (  ($(e.target).closest(".category-header").hasClass("category-header") == false) &&
              ($(e.target).closest(".rubrik__drop-list").hasClass("rubrik__drop-list") == false)
                     ) {
            $(".rubrik__drop-list").css({"display":"none"});
        }

    })

    //Закрытие при изменении размера окна браузера
    $(window).on("resize", function(){
        $(".rubrik__drop-list").css({"display":"none"});
    })

});

mn8156 27.06.2016 18:09

Ответ:
Событие resize срабатывает при прокрутке страницы. Почему - не понял. Значение ширины страницы не меняется. И опять же -это происходит на Android и iOS (на Windows Phone все нормально).


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