Ответы пользователя по тегу JavaScript
  • Почему не загружаются картинки?

    @Firsov36
    full-stack web developer
    Судя по данным из инспектора

    624a9e79f2ce5640221664.png

    У Вас очень больше TTFB. От этого и картинки появляются через N секунд. Что-то на серверной стороне тормозит отдачу запрашиваемых данных. (Может обработка тяжелого запроса к БД). В Ваших кодах не лазил, не смотрел, но долгая отработка бэкэнда может не зависеть именно для картинок. У Вас в это же время еще форма появляется, может в ней дело или других запрашиваемых данных.
    Ответ написан
  • Как добавить плавности при открытии блока на JS?

    @Firsov36
    full-stack web developer
    Вы бы лучше фрагмент работающего кода с блоком выложили куда-нибудь на codepen, чтобы можно было изменить и показать вам. А так, можно замучиться объяснять.

    display:none - не работает с transition,
    можно использовать связку visibility и opacity (возможно добавить position: absolute чтобы не было белого поля, надо смотреть уже на месте)

    visibility: hidden;
    opacity: 0;
    transition: visibility 0s, opacity 0.5s linear;


    ну и соответственно в активном состоянии стили такие

    visibility: visible;
    opacity: 1;


    Решений такой задачи бегло штук 5-6 можно придумать. Можно побаловаться высотой блока и плавно анимацией выводить его из под заголовка. Но я бы лучше использовал вывод сверстанного блока с информацией из под блока с названием и прятал его там с помощью clip-path и анимацией опускал вниз.
    Ответ написан
    Комментировать
  • Что это значит?

    @Firsov36
    full-stack web developer
    Да многое где такое есть. У Apple например. Допустим выбираешь дату. Система смотрит, что дата это сегодняшнее число и после выбора, в поле ввода просто пишется: Сегодня, 21 апреля 2020 года. Если выбрал 22 апреля, то система определит, что это "завтра" и добавит к дате слово "завтра": Завтра, 22 апреля 2020 года. А если уже дальше 23, 24 ... и следующие дни, то просто подставляет день недели. Считается, что на уровне подсознания, так воспринимается информация легче.
    Ответ написан
    Комментировать
  • Почему не срабатывает hide()?

    @Firsov36
    full-stack web developer
    hide() у Вас работает. Вот только сначала срабатывает $('.category-show__close').on('click', function() {, а потом для предка $('.category-show__btn').on('click', function() {.

    Т.е. за доли секунды у вас блоки прячутся, а потом снова появляются.

    Поставьте везде время 1000мс и увидите:

    jQuery(document).ready(function($) {
        $('.category-show__btn').on('click', function() {
            $(this).children('.category-show__overlay').show(1000);
            $(this).children('.category-show__dropdown').show(1000);
        });
    
        $('.category-show__close').on('click', function() {
            $(this).closest('.category-show__dropdown').hide(1000);
            $(this).closest('.category-show__dropdown').prev('.category-show__overlay').hide(1000);
        });
    
        $('.category-show__overlay').on('click', function() {
            $(this).hide(1000);
            $(this).next('.category-show__dropdown').hide(1000);
        });
    })
    Ответ написан
    Комментировать
  • Как при клике на элемент менять значение в массиве $arParams?

    @Firsov36
    full-stack web developer
    Если рассматривать именно задачу поменять параметр в компоненте, то это не "простой" вопрос. Как минимум и к Вам и от Вас куча вопросов дополнительных появится, а без видимости кода тут можно долго гадать. Тем более Вы привели код из php скрипта, а этот код как исполняется? По запросу ajax или при загрузке страницы? У загружаемой страницы есть какие-то параметры на входе? ... и т.д.

    А в целом у Вас не правильный подход к решению задачу. Во-первых, уверен, что точно не из-за параметра "CHANGE_CITY_MANUAL" => "Y" у Вас снова вылезает табличка, а скорее всего из-за того, что система по какой-то причине не может сохранить выбранное или подтвержденное местоположение пользователем.

    В коде у Вас есть закомменченный участок:
    // $('.' + obClass.params.CLASS.WRAP_QUESTION_REASAPEKT).remove();
    - почему он закомменчен? Трудно сказать, но похоже он нужен в коде. К тому же слово REASAPEKT написано с ошибкой, если брать во внимание, сравнивать с названием компоненты reaspekt:reaspekt.geoip.

    Так что Вы изучите ошибки в DevTools, проверьте код php и закомментированные строки в том числе. В основном логика местоположения такая: смотрится куки местоположения. если не сохранено или вышел срок куки, то определяется местоположение. Как определили местоположение по каким-то алгоритмам, то спрашиваем пользователя - правильно ли? Пользователь выбирает что правильно или нет, указывая правильный город. Куки сохраняется для повторного использования на время сессии или просто на какое-то свое время, не только на текущую сессию.
    Ответ написан
    6 комментариев
  • Как найти нужный tr td?

    @Firsov36
    full-stack web developer
    Так:

    Ответ написан
    Комментировать
  • Как сделать появление другого текста при нажатие на картинку?

    @Firsov36
    full-stack web developer
    В продолжение обсуждения, вот Вам набросок для решения задачи. Без использования javascript, все на checkbox и css. Как нажимаете на кнопку, появляется второй блок и первый скрывается.

    Ответ написан
    Комментировать
  • Почему не срабатывает toggleClass?

    @Firsov36
    full-stack web developer
    А с чего должно что-то срабатывать, если у вас нету блоков с такими классами?
    Ответ написан
    5 комментариев
  • Как сделать выравнивание последних активных слайдов по правому боку?

    @Firsov36
    full-stack web developer
    Мне показывает там не пустоту, а часть следующего товара. Считаю это наоборот правильно, тогда посетитель подсознательно поймет, что там есть что-то еще и можно пролистнуть. Мелкие стрелки можно и не заметить

    5e562a95971c8344372400.png

    А так, можно в стилях расставить кучу точек под разные размеры и "расширять" или "сужать" блок товаров до вписываемых в ширину браузера 2-3-4-5 товаров...
    Ответ написан
  • Как скрывать или показывать div в зависимости от select?

    @Firsov36
    full-stack web developer
    Ошибка в JS как минимум в том, что Вы обращаясь к блокам по классу, не указали точку перед классом.
    Ну и код можно написать так:

    $(document).ready(function(){
        $('#mem').change(function(){
            if ( $(this).val() === '64GB' ) {
                $('.total-price-1').addClass('active');
                $('.total-price-2').removeClass('active');
            } else if ( $(this).val() === 'GB128' ) {
                $('.total-price-1').removeClass('active');
                $('.total-price-2').addClass('active');
            }
        });
    Ответ написан
  • В одну переменную данные с нескольких textarea?

    @Firsov36
    full-stack web developer
    в переменную приходило значение из той textarea в которой ввели значение


    <textarea class="s" name="s[]" cols=30 rows=1>11</textarea>
    <textarea class="s" name="s[]" cols=30 rows=1>22</textarea>
    <textarea class="s" name="s[]" cols=30 rows=1>33</textarea>
    <button class="go">start</button>


    console.log(arValues);
    });
    
    $('.go').on('click', function() {
      let arValues = [];
      $('.s').each(function() {
        arValues.push($(this).val());
      });
      
      console.log(arValues);
    });
    
    let someData = '';
    $('.s').on('input', function() {
      someData = $(this).val();
      console.log(someData);
    });


    если нажать кнопку то выведет:
    ["11", "22", "33"]
    
    если просто поменять значение в одном из textarea,
    то в переменную someValue будет передано то, что в textarea
    Ответ написан
    Комментировать
  • Как правильно обратиться к элементу по дом-дереву?

    @Firsov36
    full-stack web developer
    $(“.js-recieved-comment”).on(“click”, function() {
       If($(this).attr(“data-action”) == “save”) {
           $(“.b-notepad__feedback-letter_title_icon”).removeClass('fa-exclamation').addClass('fa-plus');
        } else if ($(this).attr(“data-action”) == “remove”) {
            $(“.b-notepad__feedback-letter_title_icon”).removeClass('fa-plus').addClass('fa-exclamation');
        }
    });


    Писал с айпада, не проверял, но должно работать, если где опечатки нет
    Ответ написан
    3 комментария
  • Как при открытии div закрыть другие?

    @Firsov36
    full-stack web developer
    Код верстки взят из комментария к первому ответу, частично переделан.
    Вот написал под Вашу задачу. Надеюсь у Вас jQuery подключен, без него не будет работать.

    <script>
      function showDescription(id) {
        $(".description").each(function () {
          $(this).hide();
        });
    
        $("#" + id).show();
      }
    </script>
    
    <ul>
      <li>
        1. <a href="#1" onclick="showDescription('one'); return false;">Один <span>раз</span></a>
      </li>
      <li>
        2. <a href="#1" onclick="showDescription('two'); return false;">Два <span>два</span></a>
      </li>
      <li>
        3. <a href="#1" onclick="showDescription('three'); return false;">Три <span>три</span></a>
      </li>
    </ul>
    
    <div class="descriptionContainer">
        <div id="one" class="description">
          <h1>Заголовок 1</h1>
          Lorem Ipsum is simply dummy text
        </div>
    
        <div id="two" class="description">
          <h1>Заголовок 2</h1>
          Lorem Ipsum is simply dummy text
        </div>
    
        <div id="three" class="description">
          <h1>Заголовок 3</h1>
          Lorem Ipsum is simply dummy text
        </div>
    </div>
    Ответ написан
    4 комментария