Ответы пользователя по тегу JavaScript
  • Как отследить когда элемент появляется и начинает уходить из зоны видимой области?

    blackseabreathe
    @blackseabreathe Автор вопроса
    brackets
    Додумался сам, вот код на фидле, если кому-то понадобится, любые правки или советы приветствуются



    function inViewChangeOpacity(elem){
    
    var windowScrollTop = $(window).scrollTop(),
    windowHeight = $(window).outerHeight(),
    elOffset = $(elem).offset().top,
    elHeight = $(elem).outerHeight(),
    elBottom = elOffset + elHeight,
    bottom_of_screen = windowScrollTop + windowHeight - 100,
    opacity = 1 - (windowScrollTop - elOffset + elHeight) / elHeight,
    opacity2 = 1 + (bottom_of_screen - elBottom) / (elHeight / 2) ;
    
    if(opacity >= 1) opacity = 1;
    if(opacity2 >= 1) opacity2 = 1;
    if(opacity <= 0) opacity = 0;
    if(opacity2 <= 0) opacity2 = 0;
        
    
    if(bottom_of_screen - elHeight > elOffset && windowScrollTop < elBottom + elHeight){
    $(elem).css('opacity', opacity);
    }
    else{
    $(elem).css('opacity', opacity2);
    }
        
        
        
    }
    
    inViewChangeOpacity('.test');
    
    $(window).on('scroll resize', function(event){
    inViewChangeOpacity('.test');
    });
    Ответ написан
    Комментировать
  • Как сделать checkbox не активным при выборе значения select?

    blackseabreathe
    @blackseabreathe
    brackets
    Не совсем понятно написан вопрос.

    $('select').on('change', function(){
    if($(this).val() == 'какой-то размер'){
    $('.checkbox').prop('checked', false);
    }
    
    });
    Ответ написан
    Комментировать
  • Как скрыть блок?

    blackseabreathe
    @blackseabreathe
    brackets
    Смотря как "скрыт" блок

    $('button').on('click', function(){
    if($('.block1').is(':visible')){
    $('.block1').slideUp(300);
    $('.block2').slideDown(300);
    }
    
    else{
    $('.block1').slideDown(300);
    $('.block2').slideUp(300);
    }
    });
    Ответ написан
  • Получить позиции выделенного текста в div contenteditable?

    blackseabreathe
    @blackseabreathe Автор вопроса
    brackets
    function changeSelected(){
    if (window.getSelection() == '') {
    return false;
    }
    var range = window.getSelection().getRangeAt(0);
    var selectionContents = range.extractContents();
    var span = document.createElement("span");
    span.appendChild(selectionContents);
    span.setAttribute("class", "selected");
    span.style.backgroundColor = "yellow";
    span.style.color = "green";
    range.insertNode(span);
    }

    Правда, не знаю стоит ли добавитьdocument.selection?
    Ответ написан
    Комментировать
  • Вставить в input значение введенное ранее?

    blackseabreathe
    @blackseabreathe Автор вопроса
    brackets
    Такое решение предложили на stackOverflow

    $(".fio").keyup(function(){
      $(this).data('value', $(this).val() );
    });
    
    $(".shippingMethod").change(function(){
      let v = $(this).val();
      console.log(v);
      
      if(v == 'pickup'){
        $(".fio").val("самовывоз")
      }
      else {
        $(".fio").each(function(){
           $(this).val( $(this).data('value') );
        });
      }
    });
    Ответ написан
    Комментировать
  • Почему неправильно работает функция jQuery?

    blackseabreathe
    @blackseabreathe Автор вопроса
    brackets
    Благодаря ответам ребят пришел к правильной мысли, в общем решил так:

    при клике на юзера на странице определяю переменную
    usernameTocomplaint = false;

    теперь

    function compl(){
    if(usernameTocomplaint) return false;
    usernameTocomplaint = username; // применили уже готовое свойство в новой переменной чтобы два раза один и тот же код не писать
    ...
    }


    Все работает как часы.

    Всем спасибо за Ваше терпение, оно многого стоит
    Ответ написан
    Комментировать
  • Как реализовать плавный переход LightTabs (jquery)?

    blackseabreathe
    @blackseabreathe
    brackets
    $(tabs).children("div").children("div").eq(i).show();


    заменить на

    $(tabs).children("div").children("div").eq(i).fadeIn(600); //где 600 - скорость перехода в миллисекундах, 1 секунда = 1000 миллисекунд
    Ответ написан
    Комментировать
  • Как запретить альбомный режим при просмотре сайта?

    blackseabreathe
    @blackseabreathe
    brackets
    /*типа запрет ротации моб устройства*/
    @media only screen and (min-width: 415px) and (max-width: 1279px) {
    body{display:none} html:before{content:'Переверните устройство в портретный режим или откройте сайт с компьютера.';position:fixed;top:0;left:0;right:0;bottom:0;margin:auto;background:#fff;z-index:999;text-align:center;width:80%;height:100px} 
    }
    Ответ написан
    Комментировать
  • Как вывести дочек нужного ресурса modx api + ajax?

    blackseabreathe
    @blackseabreathe Автор вопроса
    brackets
    Если кому-то поможет.

    $res = $modx->getObject('modResource', $_POST['id']);
    $id = $res->get('id');
    $depth = 1;
    $ids = $modx->getChildIds($id, $depth);
    $docs = $modx->getCollection('modResource', array(
    'id:IN' => $ids
    ,'alias:!=' => 'f'
    ));
    $output = '';
    foreach ($docs as $doc) {
    $output .= $doc->get('pagetitle') . '<br/>';
    }
    return $output;
    Ответ написан
    1 комментарий
  • Как убрать автофокус с поля поиска select2.js?

    blackseabreathe
    @blackseabreathe
    brackets
    $('select').select2({
    minimumResultsForSearch: -1
    });
    Ответ написан
    Комментировать
  • Почему attr('disabled','false') не работает?

    blackseabreathe
    @blackseabreathe
    brackets
    $('.elem').on('click', function(){
    if($('.elem2').is(':checked')){
    $('.elem3').prop('disabled', 'true');
    } else{
    $('.elem3').prop('disabled', 'false');
    }
    
    )};
    Ответ написан
    Комментировать
  • Как скрывать мобильное меню при клике на раздел меню - якорь?

    blackseabreathe
    @blackseabreathe
    brackets
    Попробуйте так:

    $('.здесь_id_меню li').click(function(){
      $('здесь_Id_меню_или_во_что_оно_оборачивается').hide(300);
    Ответ написан
    Комментировать
  • Остановить (выключить) видео youtube при клике на body?

    blackseabreathe
    @blackseabreathe Автор вопроса
    brackets
    Нашел такое решение кому будет надо пользуйте, только ставьте свои классы или id:

    <script>
    $(document).on('click', '.open_window', function() {
        var $video = $('#you_video'),
            src = $video.attr('src');
    
        $video.attr('src', src + '&autoplay=1');
    });
    </script>
    <script>
    $(document).on('click', '.overlay', function(){
       jQuery("iframe").each(function() {
          jQuery(this)[0].contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*')});
    });
    </script>


    PS: в html коде самого видео ютюба, после ссылке надо дописать api ютюба - enablejsapi=1

    Всем добра!
    Ответ написан
    Комментировать
  • Как закрыть меню при клике на его пункт?

    blackseabreathe
    @blackseabreathe Автор вопроса
    brackets
    Ответили на stackoverflow и работает все отлично:

    var menuBtn = document.getElementById('menuBtn');
    //Находим наш блок с меню
    var menu = document.getElementById('menu');
    var menuContainer = document.getElementById('menuContainer');
    var menuIconClosed = "menu-icon closed"; //class name for closed button
    var menuIconOpened = "menu-icon opened"; //class name for opened button
    var menuContClosed = "menu-container closed"; //class name for closed menu
    var menuContOpened = "menu-container opened"; //class name for opened menu
    //Вешает клики на документ
    //Проверяемклики в обертке для меню
    menu.onclick = function(e) {
        //Проверяем объект клика - если кнопка меню запускаем функцию
        if(e.target ==  menuBtn) closeOrOpenMenu();
        //Если клик был не на ссилке не делаем ничего
        if(e.target.tagName != 'A') return;
        else closeOrOpenMenu();//Иначе закрываем меню
        
        //Функция для удобства
        function closeOrOpenMenu(){
          if (menuBtn.className == menuIconClosed) {
              menuBtn.className = menuIconOpened;
              menuContainer.className = menuContOpened;
          } else if (menuBtn.className == menuIconOpened) {
              menuBtn.className = menuIconClosed;
              menuContainer.className = menuContClosed;
          }
         }
    }


    <!--Сделаем обертку для меню чтобы проверять клики только в ней-->
    <div id="menu">
    <span class="menu-icon closed" id="menuBtn"></span>
    
    <div class="showMenu" id="menu"menu>Меню</div>
    <nav class="menu-container closed" id="menuContainer">
    <ul>
    <li><a href="#gototop">Главная</a></li>
    <li><a href="#ourservices">Услуги агентства</a></li>
    <li><a href="#aboutus">О нас</a></li>
    <li class="liNoAfter"><a href="#callus">Контакты</a></li>
    <div class="myCellMobile">
    <div class="myCellMargin">
    <i class="fa fa-map-marker myFa"></i>
    <p><span>г. Усть-Лабинск, ул.Октябрьская, 78</span><br />г. Краснодар, ул. Ставропольская 312 офис 8</p>
    </div></div>
    <div class="myCellMobile">
    <div class="myCellMarginPhone">
    <i class="fa fa-phone"></i>
    <p class="ios_reset"><span class="nonono">+7 (918) 344-10-05</span><br />info@ricit.ru</p>
    </div></div>
    <li class="forcall"><span class="modal_btn">Заказать звонок</span></li>
    </ul>
    </nav>
    </div>


    Удачи всем!
    Ответ написан
    Комментировать