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

    @Smirator
    Привет! Разбей задачу по этапно, чтобы понять, что тебе нужно.
    Тут нет привязки к WordPress или другой CMS-системе. Тебе нужно думать в JavaScript.
    Если это JavaScript, то нужно понять, что это за функционал, разбив его на составляющие:
    1) Меню выходит только в случае, если на него навели. Ага, значит, нужен функционал в JS, который отслеживает наведение. Об этом можно почитать тут: https://learn.javascript.ru/mousemove-mouseover-mo...
    2) Отлично, у JS есть из коробки функционал, отслеживающий наведение. Значит, переходим к этапу хранения меню. Тебе нужен какой-то контейнер, в котором будет лежать меню, которое будет находиться за пределами видимости. Навскидку это может быть отрицательный марджин.
    3) Убрав контейнер со своим меню нужно все это дело подружить друг с другом. Пишешь скрипт, который будет отслеживать наведение на область (нужную тебе) и отслеживаешь это. Когда действие происходит ты выдвигаешь меню. Это можно сделать анимированными свойствами в CSS и игрой с уменьшением марджина в JS.

    Собрав такой функционал уже можно задуматься о том, чтобы подружить его с WP.
    Если в код не можешь, то уже это описание можешь попробовать закинуть в нейронку и посмотреть, что она выдает.
    Ответ написан
  • Как поменять текст элемента внутри блока?

    @Smirator
    Привет. Примерно так:
    // Получаем <span>
    const firstSpan = document.querySelector('.box span:first-of-type');
    
    // Изменяем текст внутри <span>
    firstSpan.textContent = 'Новый текст для Текст 1';
    Ответ написан
    Комментировать
  • Можно ли проверить, был ли вызов функции из devtools?

    @Smirator
    Привет. В целом надо понимать, что абсолютно обезопасить свой код от вызова из инструментов разработчика не получится, можно скрыть, но назвать это эффективным подходом тоже нельзя.
    Можно попробовать: IIFE (с пониманием того, что IIFE - это изживший себя способ вызова функций, рекомендую почитать о нем ), он должен скрыть код из глобального контекста и скорее всего достучаться к нему через инструменты будет невозможно.

    (function() {
      // код
      function secretFunction() {
        console.log("Секрет!");
      }
      // код продолжается
    })();
    Ответ написан
    7 комментариев
  • Как при вставке из буфера текста удалить блок div?

    @Smirator
    Нужно отследить вставку.

    $('body').on('paste',function(e) {
        //тут удаляем див
    });
    Ответ написан
    Комментировать
  • Как правильно/красивее написать код js?

    @Smirator
    В JavaScript придерживаются идеи модульности. Вы создали десять условных функций в начале кода, а затем используете их по мере необходимости. Под вашу задачу на скорую руку набросал два варианта:

    // Для одиночного элемента:
    let div = document.getElementById('div');
    
    function addClass(el, event, className){
        el.addEventListener(event, function(){
            el.classList.add(className);
        });
    };
    
    addClass(div, 'click', 'test'); //функцию вызываем в любом нужном месте. Передаем название переменной, событие и класс
    
    // Для массива элементов:
    let elClass = Array.from(document.querySelectorAll('.elClass'));
    console.log(elClass);
    
     function adClassArr(targetArr, event, className) {
        targetArr.forEach(target => target.addEventListener(event, function(){
            target.classList.add(className);
        }));
    }
    
    
    adClassArr(elClass, 'click', 'test'); //функцию вызываем в любом нужном месте. Передаем название переменной, событие и класс
    Ответ написан
  • Почему indexOf возвращает первый элемент массива?

    @Smirator
    Вчера разбирался с похожим функционалом.
    Мой вопрос тут: https://qna.habr.com/q/1244998
    Ответ написан
    Комментировать
  • Как создать эффект печатающегося текста (js)?

    @Smirator
    Приветствую, так?

    <pre></pre>

    body {
      background: #fff;
      color: #000;
      font-family: monospace;
      font-size: 24px;
    }


    const text = [
      'Ты у меня одна,\n',
      'Словно в ночи луна,\n',
      'Словно в году весна,\n',
      'Словно в степи сосна.\n'
    ];
    
    
     let line = 0;
      let count = 0;
      let result = '';
      function typeLine() {
        let interval = setTimeout(
          () => {
            result += text[line][count]
            document.querySelector('pre').innerHTML =result +'|';
    
    
          count++;
          if (count >= text[line].length) {
            count = 0;
            line++;
            if (line == text.length) {
              clearTimeout(interval);
               document.querySelector('pre').innerHTML =result;
              return true;
            }
          }
          typeLine();
        }, getRandomInt(getRandomInt(250*2.5)))
      }
      typeLine();
    
    function getRandomInt(max) {
      return Math.floor(Math.random() * Math.floor(max));
    }
    Ответ написан
    Комментировать