Задать вопрос
  • Как указать путь в JS к json-файлу, чтобы он учитывался при сборке (parcel js)?

    @catch-a-chalk
    Попробуйте импортировать извне, чтобы json включался в сборку:
    import data from './js/data.json';
    
    function p() {
        o.loadAnimation({
            container: h,
            renderer: "canvas",
            loop: !0,
            autoplay: !0,
            animationData: data
        });
    }


    Или если нужно, чтобы он оставался отдельным файлом:
    function p() {
        const jsonPath = new URL('./js/data.json', import.meta.url).href;
        
        o.loadAnimation({
            container: h,
            renderer: "canvas",
            loop: !0,
            autoplay: !0,
            path: jsonPath
        });
    }


    Успехов!
    Ответ написан
    Комментировать
  • Почему bash-скрипт неправильно копирует папку на macOS?

    @Zzzz9
    cp -r $flagsDir/ $buildedDir/ - копировать содержимое $flagsDir/

    cp -r $flagsDir $buildedDir/ - копировать директорию $flagsDir
    Ответ написан
    1 комментарий
  • Как сделать предзагрузку SVG без JavaScript?

    amux
    @amux
    alp.ac
    Возможно MIME type="image/svg+xml" поможет:

    <link rel="preload" href="./img/icon.svg" as="image" type="image/svg+xml">


    https://developer.mozilla.org/en-US/docs/Web/HTML/...
    Ответ написан
    Комментировать
  • Как сделать такую анимацию кнопки при наведении?

    irishmann
    @irishmann
    Научись пользоваться дебаггером
    Примерно так
    Ответ написан
    Комментировать
  • Почему JS не видит SVG-элементы по ID?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.

    Всё работает.
    Может вы console.log(svg) вызываете ДО появления элемента?
    Ответ написан
    Комментировать
  • Как передать массив в Bash-скрипт?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    test.sh
    #!/usr/bin/env bash
    
    Langs=($@)
    
    for lang in "${Langs[@]}"; do
      echo "lang[$((i++))]=$lang"
    done


    $ ./test.sh ru en de
    lang[0]=ru
    lang[1]=en
    lang[2]=de
    Ответ написан
    2 комментария
  • Как передать массив в Bash-скрипт?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Так и передать, а потом разбить на элементы
    Вариантов разбивки много, например из головы такой
    #!/bin/bash
    echo $1
    for lang in $(echo $2 | tr "," "\n")
    do
      echo $lang
    done


    ./script.sh "other parameter" ru,en,fr,de,kk,pe
    Ответ написан
    Комментировать
  • Как передать массив в Bash-скрипт?

    akelsey
    @akelsey
    ./test.sh test1 test2 test3
    
    test.sh:
    #!/bin/bash
    for i in "$@"; do
      echo "$i"
    done
    Ответ написан
    3 комментария
  • Как рассчитать нагрузку на хостинге из нагрузки на CPU?

    Это делается путём нагрузочного тестирования.
    Смотри, как примерно себя ведёт посетитель сайта, какие действия делает и сколько.
    И потом моделируй это всё при помощи какого-нибудь инструмента для нагрузочного тестирования.

    Например вот как это можно сделать:
    https://firstvds.ru/technology/kak-provesti-nagruz...
    https://habr.com/ru/companies/otus/articles/507424/
    Ответ написан
    4 комментария
  • Можно ли уже использовать CSS-свойство text-wrap: balance?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Можно ли сейчас отказаться от подхода задания максимальной ширины

    От этого подхода нужно было отказаться всегда. Если вы имели в виду однотипные блоки и вашу попытку задавать им ширину в зависимости от контента "сейчас". Контент меняется.

    А также использую неразрывные пробелы для некоторых фраз.

    Это правильный подход.

    Т.е. лучше уж поставить br или span выполняющий его роль, чем фикс ширину для того, чтобы подстроить конкретный текст под блок. Если речь о каких-то дизайнерских моментах типа заголовков.

    Можно ли уже использовать CSS-свойство text-wrap: balance?

    Тут нужно начать с вопроса, а что будет если открыть сайт из браузера, который не поддерживает свойство.
    Что-то сломается? Нет.
    Т.е. это свойство работает наоборот: там где поддерживается, будет симпатичнее.

    p.s. и не используйте balance для блоков больше чем на 3-4 строки.
    Для длинных текстов text-wrap: pretty;
    Ответ написан
    Комментировать
  • Можно ли уже использовать CSS-свойство text-wrap: balance?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Переключитесь на вкладку "Date relative"
    В сафари поддержка появилась полгода назад, в лисе - менее года.

    Какое-то другое свойство я бы не стал использовать, на мой взгляд рановато.
    Но в данном случае что произойдет плохого? Ну максимум текст будет не так красиво выровнен,как вам хотелось бы. Это совершенно не критично. Так что использовать можно.
    Ответ написан
    Комментировать
  • Что означает ошибка, выводящаяся при выполнении bash-скрипта?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    выводится ошибка - [: missing `]'
    Что значит эта ошибка

    Эта ошибка означает, что
    1) bash разбил команду
    if [ "$projectDir" == "video" && "$flag" != "noflag" ]; then
    следующим образом: ключевое слово if, команда [ с аргументами "$projectDir" == "video", оператор &&, команда "$flag" с аргументами != "noflag" ], разделитель ;, оператор then.
    2) первая команда [ (она же test), очевидно, не нашла в своих аргументах закрывающей скобки ], которая должна там быть при таком её вызове.

    как ее можно исправить?

    использовать -a вместо &&, как говорит man test.
    Ответ написан
    Комментировать
  • Как в bash из массива удалить элемент c с конкретным значением?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    for (( i=0; i <= ${#lng[*]}; ++i )); do
      [ "${lng[$i]}" == "none" ] && unset lng[$i]
    done
    Ответ написан
    Комментировать
  • Как выполнить bash-скрипт после выполнения MPM-скрипта?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    npm run buildSingle --argv "dir/index.html" && /path/to/bash_script
    Ответ написан
    Комментировать
  • Как сборщик преобразует значения?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Мда.. =)

    100vh - 389px            100vh   389px
    ————————————— : 8.92 = ( ————— - ————— ) : 8.92 = (1vh - 3.89px) : 8.92 =
        100                   100     100
    
    
    
      1vh - 3.89px     1vh     3.89px
    = ———————————— = —————— - ———————— = 0.1121vh - 0.4361px
          8.92        8.92      8.92
    Ответ написан
    Комментировать
  • Как отправить запрос с конкретной формы и передать ID или Class формы в PHP-скрипт через ajax-запрос?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Как нужно вызывать js-функцию, чтобы она брала данные с той формы которую отправили? И как передать через ajax или ID, или Class формы?

    Модифицировать кнопку форм, чтобы она вызывала событие формы submit:
    <button type="submit" class="button">Отправить</button>

    Создадим один обработчик для всех форм:
    async function sendForm(form) {
      const data = {
        name: form.querySelector("input[name='name']").value,
        email: form.querySelector("input[name='email']").value,
        phone: form.querySelector("input[name='phone']").value,
        message: form.querySelector("textarea[name='message']").value,
        formId: form.id,
        formClass: form.className
      }
    
      try {
        const response = await fetch('php/send.php', {
          method: 'POST',
          headers: {'Content-Type': 'application/json'},
          body: JSON.stringify(data)
        });
    
        if(response.ok) {console.log('Success send form')}
        else console.log('Error send form', response);
      }
    
      catch(error) {console.log('Error: ' + error.message)}
    }

    Вешаем слушателей на submit форм:
    document.querySelector('#form1').addEventListener('submit', (e) => {
      e.preventDefault();
      sendForm(event.target);
    });
    
    document.querySelector('#form2').addEventListener('submit', (e) => {
      e.preventDefault();
      sendForm(event.target);
    });

    В зависимости от формы нужно в PHP-скрипте менять тему письма.

    В php обработчике формы обрабатываем полученные данные от js (php у меня не очень):
    $json = file_get_contents("php://input");
    $data = json_decode($jsonData, true);
    
    // get formId and formClass
    $id = $data['formId'];
    $class = $data['formClass'];
    
    // this change type email message
    Ответ написан
    4 комментария
  • Как получить индекс элемента с определенным классом на jQuery?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Пытаюсь так:

    let currentIndex = $(".js-practice_button.current").index();

    Но значение всегда 0, у какой бы кнопки класс current не присутствовал.

    Потому что метод index по умолчанию определяет индекс элемента среди соседей, а так как у каждой кнопки есть отдельный родитель... Ну да, получаете то, что получаете.

    Можно вместо индекса кнопки определять индекс родителя:

    const index = $('.js-practice_button.current').closest('li').index();

    Или, если указать методу index в качестве параметра селектор, то индекс будет определятся не среди соседей, а среди элементов, соответствующих селектору:

    const index = $('.js-practice_button.current').index('.js-practice_button');

    А вообще, к чёрту jquery. Есть варианты и на чистом js:

    const container = document.querySelector('.js-practices_buttons');
    const itemSelector = '.practice_item';
    const buttonSelector = `${itemSelector} .js-practice_button`;
    const activeClass = 'current';
    const activeSelector = `.${activeClass}`;

    const index = Array.prototype.findIndex.call(
      container.querySelectorAll(buttonSelector),
      n => n.classList.contains(activeClass)
    );
    
    // или
    
    const { children } = container;
    let index = children.length;
    while (index-- && !children[index].matches(`:has(${activeSelector})`)) ;
    
    // или
    
    const index =
      (el => el ? [...el.parentNode.children].indexOf(el) : -1)
      (container.querySelector(`${itemSelector}:has(${activeSelector})`));
    
    // или
    
    let index = -1;
    for (
      let el = container.querySelector(activeSelector)?.closest(itemSelector);
      el;
      el = el.previousElementSibling, index++
    ) ;
    Ответ написан
    Комментировать
  • Как в bash через sed заменить строку через регулярное выражение?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    lang="[a-zA-z]{2}"
    диапазон из 2-х любых латинских букв

    Должно быть lang="[a-zA-Z]\{2\}"
    Ответ написан
    Комментировать
  • Как в Windows сделать несколько копий каталогов под разными названиями?

    sergey-kuznetsov
    @sergey-kuznetsov
    Автоматизатор
    Создайте файл script.cmd в папке main
    @echo off
    for %%l in (en kz au cz th) do (
        xcopy /E /I /Q /Y ru %%l
    )
    Затем перейдите в командной строке CMD в эту папку и запустите скрипт.

    Вот то же самое, но через создание символических ссылок.
    @echo off
    for %%l in (en kz au cz th) do (
        mklink /D %%l ru
    )
    Но тут потребуется запускать командную строку от имени администратора, иначе ссылки не создадутся.
    В итоге у вас одно и то же содержимое отобразится в нескольких новых папках. И если изменить файл в любой папке, то это изменение повторится во всех остальных.

    main
    │   script.cmd
    ├───au
    │   └───dir
    │       │   index.html
    │       ├───css
    │       └───js
    ├───cz
    │   └───dir
    │       │   index.html
    │       ├───css
    │       └───js
    ├───en
    │   └───dir
    │       │   index.html
    │       ├───css
    │       └───js
    ├───kz
    │   └───dir
    │       │   index.html
    │       ├───css
    │       └───js
    ├───ru
    │   └───dir
    │       │   index.html
    │       ├───css
    │       └───js
    └───th
        └───dir
            │   index.html
            ├───css
            └───js
    Ответ написан
    3 комментария
  • Почему не удаляется класс по setTimeout?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Классическая потеря this. Правда, странно, что при этом нет ошибок в консоли, когда вы на window пытаетесь removeClass вызвать.

    $(".box43z6r6QZ").click(function(){
       var $el = $(this);
    
        $el.addClass("hG8KlY3Q");
    
        setTimeout(function(){
            $el.removeClass("hG8KlY3Q");
        }, 1000);
    });
    Ответ написан
    Комментировать