Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (15)

Лучшие ответы пользователя

Все ответы (36)
  • Как сделать подобное?

    @f_ban
    Конкретно в данном примере canvas использован. А если взять в общем, разобрашись с стандартами/спецификациями HTML5 (CSS, DOM, JS) + SVG, то можно и более изящное решение сделать, у которого внешний вид и поведение каждого визуализируемого объекта настраивается в таблице стилей и обработке событий и легко меняется в коде JS. Таким образом, не придется по каждому чиху переписывать код отрисовки (да и вообще с ним заморачиваться).
    Если же визуализируемых объектов будет многовато, то наверное все таки лучше канвас.
    Ответ написан
  • Как валидировать форму для скачивания файла с минимумом JS?

    @f_ban
    1. Используйте input[type=submit]/button[type=submit]
    2. Подпишитесь на событие submit на форме
    3. В обработчике события запускайте загрузку файла с помощью примерно такой функции
    // https://stackoverflow.com/questions/3916191/download-data-url-file/45905238#45905238?newreg=ddb3c48865d04c319b39f772df762521
    function download(dataurl, filename) {
      var a = document.createElement("a");
      a.href = dataurl;
      a.setAttribute("download", filename);
      a.click();
    }

    3. Что касается невозможности нажатия на кнопку сабмита, если хоть одно поле формы не валидно, то навешайте примерно такой стиль:
    #someform:invalid [type=submit]{
      pointer-events: none;
      
      /* другие нужные стили, да хоть display: none; */
    }

    4. Если редирект хотите выполнять на бэке, тот здесь проблем нет - просто перенаправляйте в бэковом обработчике формы. Если будете редиректить клиентом, то в обработчике сабмита отмените дефолтовую реакцию на ивент, с формы соберите данные и пошлите AJAX-ом на бэк, и затем делейте редирект на сэнкью-пейдж, если данные отправились успешно.
    Ответ написан
  • Самообновляющийся результаты?

    @f_ban
    WebSocket, long pooling ( практически полный онлайн )
    ну и предыдущий вариант, если нет возможности реализовать серверной поддержки websocket и long pooling

    а вот здесь сводку по всем подобным техникам можно почитать
    learn.javascript.ru/ajax-summary
    Ответ написан
  • Возможно ли определить включен ли GPS на смартфоне из мобильного браузера?

    @f_ban
    Прямого API, предоставляющего такой функционал, не встречал.
    Использую такой трюк. Метод navigator.geolocation.getCurrentPosition() вторым параметром принимает обработчик ошибок. Если в обработчик попала любая ошибка кроме PERMISSION_DENIED, то сообщаю пользователю, что геолокация не доступна, прошу проверить включен ли модуль геолокации.
    Ответ написан
  • Вопросы об одной строке React кода?

    @f_ban
    Судя по приведеному коду:
    1. В this.state.active хранится индекс текущего активного айтема.
    2. Через this.props.items в компонент прокидвыается массив айтемов, с которыми нужно работать.
    3. Могут сойтись звезды так, что this.state.active будет иметь значение, выходящее за пределы массива this.props.items (самое первое предположение о природе данной проверки). В этом случае конструкция this.props.items[this.state.active] вернет значение undefined,
    4. Далее в работу включается оператор &&, в случае когда (false && чтото_там_еще), выигрывает то, что справа. Оператор && сперва стратается привести значение слева к булевому, по одному определенному алгоритму приведения, в частности undefined приводится к значению false. Таким образом, конструкция будет исполнена только если this.props.items[this.state.active] не вернет undefined/null/0/''/false.
    5. Конструкция {...this.props.items[this.state.active]} говорит о том, что все свойства возвращенного объекта нужно вставить как пропсы в создаваемый Content
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (4)