Задать вопрос
@angelzzz

Как отключить выполнение js при определенных условиях?

Есть js код

<script type="text/javascript">
        $(document).ready(function() {
            var v = $("#sticknavbar");
            var z = $("#sticknavbottomid")
            var stickyHeaderTop = v.offset().top;
            $(window).scroll(function() {            
                if ( $(window).scrollTop() >= stickyHeaderTop) {
        			v.addClass("sticknav"); //добавить класс sticknav
        			z.addClass("sticknavbottom");
               } else {
        			v.removeClass(); //при достижении нижней части убрать sticknav        		
        			z.removeClass("sticknavbottom");
               }
              });
        });    
    </script>


1. Как отключить выполнение кода, если разрешение экрана меньше 992px?
2. Как настроить проверку на наличие #sticknavbar или #sticknavbottomid (есть другой код где больше id), и если их нет, то не выполнять код. Иначе сейчас при отсутствии этих id другой код не выполняется
  • Вопрос задан
  • 2524 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@seriogja
1) Настроить событие ресайза окна на сохранение размеров этого окна. Проверять (при ресайзе) больше ли ширина, чем нужно.
2)
if ( $( "#myDiv" ).length ) {
    // элемент есть
    $( "#myDiv" ).show();
}

И кстати, абсолютно не ясно как код, который вы разместили в посте, связан с вопросом. Как он может помочь, и зачем вы его разместили - не понятно.
Ответ написан
@angelzzz Автор вопроса
Отвечу сам. Задачу решил вот так:

<script type="text/javascript">
        var isMobile = {
            Android:        function() { return navigator.userAgent.match(/Android/i) ? true : false; },
            BlackBerry:     function() { return navigator.userAgent.match(/BlackBerry/i) ? true : false; },
            iOS:            function() { return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true : false; },
            Windows:        function() { return navigator.userAgent.match(/IEMobile/i) ? true : false; },
            any:            function() { return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows());  }
        };
      
        if ( !isMobile.any() ) {
            $(document).ready(function() {
                var v = $("#sticknavbar");
                var z = $("#sticknavbottomid")
                var stickyHeaderTop = v.offset().top;
            
                $(window).scroll(function() {
                	//var windowpostest = $(window).scrollTop();
                	//v.html("расстояния от верха" + "<br />"+ stickyHeaderTop + "<br /> mestopozhenie " + windowpostest + "<br />"+ v.offset().top
                    //);
                
                    if ( $(window).scrollTop() >= stickyHeaderTop) {
            			v.addClass("sticknav"); //добавить класс sticknav
            			z.addClass("sticknavbottom");
                   } else {
            			v.removeClass(); //при достижении нижней части убрать sticknav        		
            			z.removeClass("sticknavbottom");
                   }
                  });
            });    
        }
    </script>


Где эта контструкция отключает показ js на мобильных

var isMobile = {
            Android:        function() { return navigator.userAgent.match(/Android/i) ? true : false; },
            BlackBerry:     function() { return navigator.userAgent.match(/BlackBerry/i) ? true : false; },
            iOS:            function() { return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true : false; },
            Windows:        function() { return navigator.userAgent.match(/IEMobile/i) ? true : false; },
            any:            function() { return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows());  }
        };
      
        if ( !isMobile.any() ) {
        }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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