• Как бы вы решили данную задачу? Генерация Exel файла в JS?

    vovka3003
    @vovka3003
    Фрилансер. Инженер систем безопасности.
    Ответ написан
    Комментировать
  • Как расположить блоки с помощью grid?

    delphinpro
    @delphinpro Куратор тега HTML
    frontend developer
    но не пойму, как 4 блок перенести в 3 колонку сначала?
    Использовал данные стили, но 4 блок был на месте 5, и последующие не заполняли свободные ячейки


    .box:nth-child(3n) {
     grid-column: span 2
    }


    У вас повтор идет через пять блоков. Значит должно стоять 5n – каждый пятый
    Но применяться должно к 4-му блоку в этой пятерке. Значит нужно добавить смещение + 4
    Итог:

    .box:nth-child(5n + 4) {
        grid-column: span 2;
    }


    Ответ написан
    Комментировать
  • Почему transitionend ломается если быстро нажимать на кнопку?

    @StepsOnes
    Проблема заключается в том, что при быстрых кликах на кнопку, очередные вызовы функции `translateY()` начинаются еще до того, как завершится предыдущая анимация (и соответственно, "transitionend" не успевает сработать). Это приводит к созданию множества слушателей события transitionend на одном элементе, что затрудняет правильную работу анимации при последующих кликах.

    Для решения этой проблемы можно добавить проверку наличия класса "translate" на элементе, перед добавлением его на кнопку. Если класс уже присутствует, то следует пропустить выполнение функции и не добавлять новый слушатель события transitionend:

    function translateY(e) {
      if (!e.classList.contains('translate')) {
        e.classList.add('translate');
        e.addEventListener('transitionend', function handler() {
          e.classList.remove('translate');
          e.removeEventListener('transitionend', handler);
        });
      }
    }


    В этом коде мы проверяем, не содержится ли наш элемент класса "translate" перед добавлением этого класса. Далее, если класса нет, то мы добавляем слушатель события transitionend, и при завершении анимации удаляем слушатель и удаляем класс "translate" с элемента.

    Такой подход обеспечивает правильную работу анимации при быстрых кликах на кнопку.

    Отмечу, что в целом, использование js для реализации простой анимации как в данном примере может считаться избыточным. В большинстве случаев, на такие анимации можно обойтись использованием только css (как вы и отметили, через псевдоклассы, например :active).
    Ответ написан
    Комментировать
  • Можно ли исправить ошибку append?

    vool
    @vool
    Разработчик
    setTimeout(function() {
       let script = document.createElement("script");
       script.src = "https://yastatic.net/share2/share.js";
       script.setAttribute("async", "true");
       document.querySelector(".fshare-in").appendChild(script)
       document.querySelector(".ya-share2").classList.remove("not-loaded");
    }, 3e3);
    Ответ написан
  • Как перенести строку при отправке сообщений в тг через js бота?

    i229194964
    @i229194964
    Веб разработчик
    const message = "Первая строка\nВторая строка\nТретья строка";
    bot.sendMessage(chatId, message);

    Если хочешь многострочный текст в качестве сообщений.
    const message = `
      Многострочный
      текст
      сообщения
    `;
    bot.sendMessage(chatId, message);
    Ответ написан
    4 комментария
  • Как правильно прописать цикл?

    @ragq1991
    У Вас происходит переполнение памяти за счет зацикливания. Ваш цикл работает так: пока находится вхождение в строке list делай то-то и то-то, но строка list при этом не изменяется, и Ваш цикл пытается раотать вечно находя снова и снова первое вхождение. Вам необходимо внутри цикла прописывать заумену/удаление найденного вхождения в строке list что бы while искал следующее вхождение и в конце-концов вернул значение -1, то есть вхождений не найдено.
    Ответ написан
    1 комментарий
  • Как ограничить кол-во элементов, которые меняет скрипт appenChild js?

    @ragq1991
    Только у меня не прогружается фрейм в котором смотреть код нужно?
    Ответ:
    <ul>
    <div id="foo">
      <li>You have cat to be kitten me right meow</li>
      <li>Eat plants, meow, and throw up</li>
      <li>my owner today cough furball into food bowl</li>
      <li>I shredded your linens for you</li>
     </div>
      <li>Play time carefully drink from water glass</li>
      <li>jump on human and sleep on her all night long</li>
      <li>purr in the morning and then give a bite to every human around</li>
      <li>waking up request food, purr loud scratch the walls</li>
    </ul>
    Ответ написан
    7 комментариев
  • Почему запрос к mysql внутри цикла while выполняется очень долго?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Время получения 40000+ записей из таблицы offers = 0.2s

    Вот такой код отрабатывается за 4s

    то есть в цикле делается 40тыс запросов к таблице clients каждый из который выполняется за 0.0001 sec

    вам точно надо прочитать про JOIN'ы чтобы одним запросом получить все нужные данные
    https://www.w3schools.com/sql/sql_join.asp
    Ответ написан
  • Как сделать сохранение текста из input?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    getElementsByClassName() возвращает не ваш input, а живую HTML-коллекцию с единственным элементом. У коллекции нет свойства value.

    - let input = document.getElementsByClassName('form-control');
    + const input = document.querySelector('input.form-control');
    Ответ написан
    2 комментария
  • Как сохранить в localStorage объект, хранящий данные о HTML?

    SagePtr
    @SagePtr
    Еда - это святое
    Разметку сохранять не надо, только данные. Разметка должна генерироваться из этих данных. А можно вообще хранить в корзине только id'шники, а с сервера запрашивать по ним информацию.
    Ответ написан
    Комментировать
  • Как сделать красивый многострочный background у <code>?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Сделайте его блочным

    639f7781e9974813936851.png

    Здесь это делается по условию. Если в теге много символов, или более одной строки – он оборачивается в блочный pre
    Ответ написан
    Комментировать
  • Какие файлы считаются небезопасными для загрузки на сервер?

    @tukreb
    Все файлы небезопасны. Можно загрузить картинку, в которой будет исполеяемый код.
    Вы должны настроить сервер (nginx/apache) так, чтобы в папке где будут загруженны клиентами файлы, в принципе нельзя было исполнять НИКАКИЕ файлы.
    Ответ написан
    Комментировать
  • Какие файлы считаются небезопасными для загрузки на сервер?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Все файлы безопасны. Можно загружать и .php и .apk, главное запретить исполнение и разрешать только скачивание.
    Отдельно конечно вопрос по содержимому, так как зальют вам вирус - за это сайт выкинет гугл или яндекс или попадёте в чёрные списки. Зальют картинку или видео с сомнительным содержимым, уже придёт роскомнадзор или хостер выкинет вас или регистратор заблокирует домен.
    Ответ написан
    Комментировать
  • Как привязать img к input file?

    Seasle
    @Seasle Куратор тега CSS
    Ответ написан
    Комментировать
  • Как привязать img к input file?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Комментировать
  • Как хранить большие видео на сервере?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Нужен веб-сервер, который умеет в большие видео-файлы: отдавать не просто весь файл целиком, а находить в нём запрошенное время начала, и выдавать по небольшим кусочкам. См. DASH (на англ.)

    Чтобы играть видео можно было с любого места, не скачивая часовое видео полностью.

    Подробнее на примере NGINX (на англ.)
    Ответ написан
    Комментировать
  • Как начать заниматься "серьезной" разработкой?

    @StopFox
    Лао-цзы: «путь в тысячу ли начинается с первого шага»
    Брюс Ли: "Я не боюсь того, кто изучает 10,000 различных ударов. Я боюсь того, кто изучает один удар 10,000 раз"
    Повторение результата из раза в раз с сохранением того же качества это удел профессионалов. Поэтому много мелких однотипных проектов это даже хорошо, с минимальными усилиями вы нарабатываете будущую клиентскую базу людей которым вы помогаете сейчас и которые будут знать к кому обратиться в будущем. Через 10 лет ваши друзья разбегутся кто куда, станут семейными и откроют бизнес, а в нашей стране очень ценят работу "специалиста по знакомству", но помните любая работа должна быть оплачена и не стоит делать её бесплатно или со скидкой просто потому что знакомые, людей которые захотят вас использовать будет много. Просто примите это как правило.
    И еще, все великие начинали с того что брали за основу чьи то наработки и использовали их в своей работе. Поэтому не бойтесь использовать сторонние инструменты, я не говорю вам воровать, но на первых этапах направления которое вы выберете использовать чужое - ок.
    Деньги, второстепенное оно приходит с опытом само, не стоит сильно акцентировать внимание на том чтобы заработать миллионы, поверьте это не то что вы хотите на самом деле.
    Пока вы молодой, ищите себя в разных направлениях, не бойтесь рисковать и менять работу чтобы к 30 годам уже точно определиться с направлением которое вам близко к душе а не потому что "там больше платят".

    И вот еще видео для мотивации.
    https://youtu.be/w0Mc2CFxFyE
    Ответ написан
    3 комментария
  • Почему не работает всплывашка, сам скрипт подключен в html перед закрывающим body?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    const openPopUp = document.getElementById('open_pop_up');
    - id должен быть уникальным в рамках страницы. Не должно быть более одного элемента, с повторяющимся id. В итоге тут будет найден только первый в разметке элемент с таким id. То есть только первая кнопка "заказать" будет работать.

    const closePopUp = document.getElementById('pop_up_close');
    - не существует элемента с таким id. Есть с class.

    const popUp = document.getElementById('pop_up'); - аналогично предыдущему.

    <a class="table_box_button" href="#" class="open_pop_up">Заказать</a>
    Это где Вы научились два раза один и тот же атрибут объявлять на элементе? Объединить в один.
    Ответ написан
    4 комментария
  • Как вывести только города?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    let dataList = {};
    
    fetch('https://api.hh.ru/areas/113').then(response => {
        return response.json();
    }).then(
        json => {
          const cities = json.areas.reduce((array, area) => {
            const citiesAtArea = area.areas.reduce((citiesArray, city) => {
              return [...citiesArray, city.name]
            }, [])
            return [...array, ...citiesAtArea]
          }, [])
          
          console.log(cities)
        }
    );
    Ответ написан
    2 комментария
  • Как получить имя скачиваемого файла или почему Content-Disposition == null?

    Seasle
    @Seasle Куратор тега JavaScript
    request
        .then(async (res) => ({
            body: await res.blob(),
            contentDisposition: res.headers.get('Content-Disposition')
        }));
    Ответ написан
    1 комментарий