• Как убрать крестик у input?

    SkiperX
    @SkiperX Куратор тега CSS
    input[type="search"]::-webkit-search-decoration,
    input[type="search"]::-webkit-search-cancel-button,
    input[type="search"]::-webkit-search-results-button,
    input[type="search"]::-webkit-search-results-decoration {
    	-webkit-appearance:none;
    }
    Ответ написан
    2 комментария
  • Почему из-за Suspense в React.js(ts) не срабатывает onLoadedData на видео?

    scoffs
    @scoffs
    Fullstack | C# | Student
    Возможно, что видео не срабатывает или срабатывает не всегда, потому что оно еще не загружено на момент первого рендеринга компонента. Из-за этого обработчик может пропустить событие onLoadedData.

    // может использовать onCanPlayThrough ? Или onCanPlay / onPlay
    const handleOnCanPlayThrough = () => {
      setLoading(false)
      console.log('Video loaded')
    }
    
    <video
      onCanPlayThrough={handleOnCanPlayThrough}
      // ...
    >
    Ответ написан
    1 комментарий
  • Почему из-за Suspense в React.js(ts) не срабатывает onLoadedData на видео?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Самое странное то, что на продакшн версии обработчик корректно работает

    почти наверняка из-за React.StrictMode - там двойное монтирование, и вообще всё двойное. Попробуй его убрать.
    Ответ написан
    3 комментария
  • Нужно ли json файлы с переводом выносить на бэк?

    scoffs
    @scoffs
    Fullstack | C# | Student
    Тут как посмотреть:
    • Если вы планируете добавлять новые языки или обновлять переводы регулярно, может быть полезно хранить файлы на бэкэнде. Это обеспечит более гибкую систему управления переводами и обновлениями без необходимости изменения клиентского кода.
    • Если содержимое переводов является конфиденциальным или чувствительным, вынос файлов на бэкэнд может предоставить дополнительные меры безопасности
    • Если вы хотите использовать кэширование для оптимизации производительности, хранение JSON файлов на бэкэнде позволит вам настроить соответствующие заголовки кэширования для HTTP-ответов, что снизит нагрузку на сервер и ускорит загрузку переводов
    Ответ написан
    1 комментарий
  • Не правильно работает idex.php, где ошибка?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    enaen, вы не только путаетесь в названиях файлов (idex.php и sAndmail.php - ярчайший тому пример), но еще и два раза дали один и тот же код sEndmail.php. А самое главное: совершенно непонятно ЧТО ЖЕ ИМЕННО у вас не работает?! Поэтому ответить вам конструктивно, дать совет - не представляется возможным, сорри.
    Ответ написан
    Комментировать
  • Не правильно работает idex.php, где ошибка?

    Mecitan
    @Mecitan
    Уверенный пользователь клавиатуры
    Стоит не скачивать готовые файлы с кодом, а лучше ручками самому набрать его. Повторяя за авторм. Вникая в каждоую строчку кода и пытаясь понять происходящее. Плюс у вас могут быть разные программы для работы сервера на локальной машине и то, что работает у автора, не факт, что будет работать у вас.
    Ответ написан
    Комментировать
  • Как вынести кнопки за предел swiper?

    DanArst
    @DanArst Куратор тега JavaScript
    Гриффиндор в моде при любой погоде!
    Оберните слайдер в еще один контейнер и укажите кнопки там, условно такая разметка
    <div class="slider-wrapper">
       <div class="swiper">
          <div class="swiper-wrapper">
             <div class="swiper-slide">Slide 1</div>
             <div class="swiper-slide">Slide 2</div>
             <div class="swiper-slide">Slide 3</div>
           </div> 
        </div>
        <!-- Кнопки -->
        <div class="myslider-prev swiper-button-prev"></div>
        <div class="myslider-next swiper-button-next"></div>
    </div>

    И в js укажите так
    var swiper = new Swiper('.swiper', {
      ...тут ваши прочие параметры
      navigation: {
        nextEl: '.myslider-next',
        prevEl: '.myslider-prev',
      },
    });
    Ответ написан
    1 комментарий
  • Как присвоить класс тегу body?

    Stalker_RED
    @Stalker_RED
    // определяем есть ли элемент с классом .stories-slider-in
    const hasSlider = !!document.querySelector('.stories-slider-in');
    // переключаем .name в зависимости от hasSlider
    document.body.classList.toggle('name', hasSlider);
    Ответ написан
    Комментировать
  • Как динамически подгружать компоненты по скроллу в React.js?

    @semen_ch
    фронтенд разработчик
    Вот то что вам нужно) https://devprac.ru/%D0%BA%D0%B0%D0%BA-%D0%B4%D0%B8...
    Ответ написан
    Комментировать
  • Как реализовать такую таблицу с затемнением?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    В таких штуках самое главное - это свести цвета на пересечениях линий. Просто вставить линии-градиенты на всю ширину-высоту таблицы картинками тут не прокатит т.к. пропорции ячеек могут меняться и цвета на пересечениях будут расходиться. Вариант наложить на всю сетку SVG-маску тоже отпадает по этой же причине - она будет расходиться с пропорциями конкретных ячеек и будет ломаться логика, в каких пределах должно происходить затемнение. Поэтому, вне зависимости от выбора CSS-свойств, все будет сводиться к одной и той же идее, что мы должны сделать границы для всех ячеек в центре стандартным образом, а для первой и последней колонки и первой и последней строки нарисовать кастомные границы. Как вариант:



    Код с повторениями почти одного и того же, вероятно его можно сократить в какой-нибудь хитрый миксин, но конечная идея примерно такая.

    P.S.: И тут, по хорошему, стоит уточнить у дизайнера, как он видит длину затемнения в процентах от длины ячейки, особенно когда они сильно отличаются по пропорциям. Здесь градиенты от края до края, но, возможно, что в вашем случае нужно делать градиент не от 0% до 100%, а от 0% до какого-то другого значения, возможно зависящего от размера шрифта, а дальше уже заканчивать одним цветом.
    Ответ написан
    1 комментарий
  • Как перенести строку при отправке сообщений в тг через js бота?

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

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

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как в 2023 изучать node.js?

    Как и в остальных годах.

    Столкнулся с такой проблемой, что при изучении node.js не хватает актуальных материалов

    Сильное заявление.

    но коннект с БД.

    С какой бд?

    Что актуального в плане изучения можете посоветовать?

    Гугл, говорят, помогает...

    Первый запрос, вторая ссылка:
    https://metanit.com/web/nodejs/8.1.php , вроде на монгу не похоже.
    Ответ написан
    Комментировать
  • Как в 2023 изучать node.js?


    Весь материал который нахожу, это облачный MongoDB

    Если тебе хочется именно монгу, то разворачивай её локально и дальше как в тех гайдах.

    Либо если не принципиально - бери постгрес
    Ответ написан
    3 комментария
  • Какую альтернативу взять место MongoDB?


    а её заблокировали в России

    Только облачный Mongodb Atlas.

    А развернуть свой экземпляр можно без каких-либо проблем.
    Если хочется облако - можно взять dbaas у какого-нибудь провайдера.

    MySQL радикально отличается от mongodb как языком запросов, так и парадигмой.
    GraphQL - вообще даже не база данных, а только лишь протокол
    Ответ написан
    Комментировать
  • Как передать ответ от сервера в JS?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Да, для валидации рекомендую делать скрытые <div> контейнеры, в которые потом выводить ошибки. Советую сразу этому контейнеру прилепить класс d-none
    Ответ написан
    Комментировать
  • Как работает деструктуризация в этом примере?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    ...someArray - раскладывает массив на элементы.
    Таким образом можно объединять массивы

    combineArray = [...firstArray, ...secondArray]
    Ответ написан
    Комментировать
  • Как работает деструктуризация в этом примере?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    И тут всё понятно.
    Берётся часть массива notes до index исключительно, дописывается значение event.target.value, затем часть массива notes после index. Всё это заворачивается в массив.
    На выходе новый массив, копия notes, в котором элемент по index заменён на event.target.value.
    Ответ написан
    Комментировать
  • Как работает деструктуризация в этом примере?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Может, так понятнее. Примерно то же:
    const arr = [0, 1, 2, 3, 4, 5];
    const index = 3;
    [ ...arr.slice(0, index), 'Habr', ...arr.slice(index + 1) ]
    // [ 0, 1, 2, "Habr", 4, 5 ]
    Делается новый массив, в котором сначала идут элементы исходного от 0 до index (не включая index);
    затем вставляется некий новый элемент;
    затем добиваются элементы исходного начиная со следующего после index'ного.

    Фактически заменяется элемент под индексом index на некий новый. В отличие от метода splice(), которым можно было бы сделать тоже самое arr.splice(index, 1, 'Habr'), вариант в вопросе не изменяет исходный массив, а создаёт новый – что, в общем-то, «правильно».
    Ответ написан
    Комментировать
  • Как сделать бесконечную анимацию движения блоков справа налево?

    imko
    @imko
    Senior Scratch Developer
    Есть проще но тяжелее вариант - слайдер с длительностью анимации перехода равной задержке автоплея, ну либо нулевой задержке автоплея, смотря учитывает ли он длительность перехода во времени активности слайда.
    Ищем слайдер который умеет клонировать слайды и быть цикличным, это почти любой) Отключаем у него управление мышкой/кнопками/силоймысли и настраиваем величины автоплея + тайминг функцию анимации перехода
    Ответ написан
    Комментировать