Ответы пользователя по тегу JavaScript
  • Какие есть лучшие блоги по веб разработке на английском?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Ответ написан
    Комментировать
  • Как получить значение Y на кривой безье по X?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Антон Мудренок , как вы категорично говорите что никак нельзя... а если очень хочется?

    Пусть есть четыре точки

    A(x_%7B0%7D%2C%20y_%7B0%7D)%2C%20...%2C%

    Обычно кривая задается параметрически вот в таком виде

    x(t)%20%3D%20(1%20%E2%80%93%20t)%5E3%20xy(t)%20%3D%20(1%20%E2%80%93%20t)%5E3%20y

    Если произвести нехитрые преобразования получаем более привычные взгляду кубические уравнения относительно t

    x(t)%20%3D%20(%E2%80%93x_%7B0%7D%20%2B%2

    И аналогично для y(t).

    Если мы рисуем только из A(0,0) в D(1,1) (имеется в виду вот такая картинка) - можно упростить полученное уравнение (а еще лучше привести его сразу к каноническому виду, но это уже для автора вопроса задачка)

    0%20%3D%20(3x_%7B1%7D%20%E2%80%93%203x_%

    Тут и начинается собственно алгоритм, который нам нужен:
    • Задаем x(t)
    • решаем кубическое уравнение относительно t (например по формуле Кардано), получаем 3 корня, отбрасываем комплексные
    • оставшиеся подставляем в уравнение для y(t) - получаем необходимые значения y


    (Если рисуем из A(0,0) в D(1,1) и координаты остальных точек также от 0 до 1, то всегда будет получаться один корень)

    Так что в целом - можно посчитать необходимые значения с достаточно большой точностью
    Ответ написан
    5 комментариев
  • Как сделать универсальный переключатель?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Кажется вы пытаетесь изобрести radio button (codepen).
    Ответ написан
    Комментировать
  • Какие микро js/css библиотеки/фреймворки посоветуете для изучения?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Простота в изучении... Минималистичность; никаких супернаворотов не надо... будет предоставлять какие-то простые, визуально чистые решения для наиболее часто встречающихся задач... Легковесность... предоставляет больше свободы...

    Для начала стоит попробовать старый добрый VanillaJS - он как раз под ваши требования подходит.

    P.S.: Не сочтите это за юмор, учитывая что
    обычно упоминают Bootstrap. В силу отсутствия какого-либо опыта вообще не могу судить хорош он или плох

    вы точно также не сможете оценить хорош или плох любой другой инструмент, который будет упомянут в ответах на этот вопрос, а единственный путь, который приведет вас к осмысленному выбору - это изучение основ.
    Ответ написан
    Комментировать
  • Срочно! Как запустить 2 Яндекс Карты на одной странице?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Вы делаете
    placing.geoObjects.add(home_point).add('zoomControl');

    но zoomControl - это ни разу не geoObject, это control (см. официальню документацию). В этом месте возникает ошибка Uncaught TypeError: child.getParent is not a function, которую сразу видно в консоли. В вышеупомянутой документации есть пример того, куда нужно добавлять zoomControl.

    P.S.: Не стоит плодить одинаковые вопросы - это не ускорит получение вами ответа. Более эффективным подходом было бы сразу указать на ошибку, которая возникает и показать на строку, в которой она возникает.
    Ответ написан
    Комментировать
  • Как в jQuery случайные числа от 1 до 100, исключая выведенных?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Ответ написан
    Комментировать
  • Scroll-behavior не работает в Хроме?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    scroll-behavior работает только в firefox.
    scrollintoview тоже работает только в firefox. Хром частично умеет, но smooth его печалит. Вообщем все, что вы пробуете находится в стадии "черновика", до поддержки браузерами еще очень далеко.
    Ответ написан
    2 комментария
  • Как поставить 2 цвета в placeholder?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Можно использовать label - с его стилизацией проблем не будет, а при фокусе на input его поднимать/уменьшать/убирать.
    Ответ написан
    Комментировать
  • Как собрать стайлгайд?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Пробовал использовать DSS (если быть точнее grunt-dss, поскольку все остальное собиралось с помощью grunt). Несмотря на то, что этот проект давно не обновляется, использовать его вполне можно. Вся идея состоит в том, чтобы в css (less/sass/...) писать комментарии вида
    // @name Button
    // @description Button component
    //
    // @state -small     - Smaller button
    // @state -large     - Larger button
    // @state -dangerous - Indicates danderous action
    // @state -ghost     - Button with transparent background
    //
    // @see button-group
    //
    // @markup
    //      <a class="button" href="">button</a>

    и из них генерируется стайлгайд. Инструмент очень простой и поэтому легко кастомизируется - можно дописывать свои парсеры для чего-то кастомного (например если нужна информация о js для компонента или что-то еще), шаблон для всего этого - обычный html со вставками вида {{property}}.
    Ответ написан
    1 комментарий
  • Актуальны ли еще видео Sorax'a?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Да, видео Sorax`a все еще актуальны. Единственное что стоит помнить, так это то, что в видео про JS он рассказывал все используя ES5, а сейчас в наш мир медленно но верно приходит ES6, т.е. все, что он говорил до сих пор актуально, но немного дополнилось новым стандартом (который можно разобрать как дополнение к предыдущему за пару дней).
    Ответ написан
    2 комментария
  • Что значат восклицательные знаки?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Это преобразование к типу boolean, т.е. запись вида
    !! variable
    по смыслу соответствует вот этому:
    Boolean(variable)
    Ответ написан
    Комментировать
  • Как проверить колличесвто символов в строке?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    [].forEach.call(document.getElementsByClassName('num'), function(element) {
        if (element.textContent.length > 6) {
            element.classList.add('someclass');
        }
    });
    Ответ написан
    Комментировать
  • Сижу разбираюсь в JS и вот наткнулся на вот такую запись, может кто-нибудь объяснить?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Можно ее записать в более привычном виде?

    Да, это тоже самое что
    if (0 == cr) {
        a[i] = 0;
    }
    
    d.clearRect(13 * i + 3, 13 * cr_l + 3, 10, 10);
    
    k[i] = ((0,1 == b[i]) && (b[i] = a[i] = 0));
        
    if (0 == a[i]) {
        a[i] = q++;
    }
    Ответ написан
    Комментировать
  • Javascript найти элемент?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Вы просто вешаете обработчики события на элементы до того, как они создаются, т.е. у вас сначала выполняется
    var todoItem = document.querySelectorAll('.todo_item'); 
    [].forEach.call(todoItem, function (item) {
        item.addEventListener ....
        ....

    А сами то элементы с классом .todo_item создаются только после нажатия кнопки. Соответственно вам нужно добавлять обработчик события click к каждому элементу класса .todo_item в момент его создания.

    P.S.: хорошей практикой считается не менять CSS свойства из скриптов (в вашем случае display: none), а делать CSS классы и добавлять их к элементу или удалять (например сделать класс .hide { display: none; } и его добавлять к элементам).
    Ответ написан
    1 комментарий
  • JS(jQuery) Как получить случайный элемент массива без повторений?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    В общем случае можно генерировать случайную перестановку для множества из N элементов (в вашем случае 12):
    let getRandomPermutation = (n) => {
        let arr = Array.from(Array(n).keys());
        
        for (let i = (n - 1); i > 0; i--) {
            let j = Math.floor(Math.random() * i);
            
            [arr[i], arr[j]] = [arr[j], arr[i]];
        }
        
        return arr;
    }


    И затем:
    let permutation = getRandomPermutation(colors.length);
    let temp = colors.slice();
    
    for (let i = 0; i < colors.length; i++) {
        colors[i] = temp[permutation[i]];
    }


    У вас получается отсортированный в случайном порядке массив цветов. Если нужно начать сначала - генерируете перестановку заново и круг замыкается. Разумеется можно не генерировать перестановку отдельно, а сразу сортировать нужный массив - здесь я разделил для наглядности.

    codepen.io/sfi0zy/pen/yVOMmK?editors=0012
    Ответ написан
    Комментировать
  • Как сделать ввод только float чисел и замену "," на "." через keyup?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Почему бы не добавить type="number" к вашему инпуту и не поиспользовать уже готовый функционал (вместо того, чтобы придумывать свой велосипед)? codepen.io/sfi0zy/pen/YpXgeM
    Ответ написан
    Комментировать
  • Какие альтернативы можно выбрать для JavaScript?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Так как Java script это мейнтсрим

    JavaScript - это то, что будет работать в браузере у клиента. Все языки вроде CoffeeScript, ClojureScript, Dart, TypeScript и.т.д. транслируются в JavaScript. Таков мир.

    какие минусы выше перечислинных технологий относительно JS

    Не всякий JS разработчик захочет учить тот же самый Dart. В остальном - минусов особых нет, вы просто пишете на "другом" языке, а дальше система сборки за вас все делает сама.

    Какая разница между UI который можно создать на GWT и JS ?

    Никогда не использовал GWT, но возвращаясь к пункту 1 - все, что умеет JS вы в любом случае имеете в том или ином виде, следовательно разницы никакой.

    повлияет ли это на скорость загрузки станиц

    Если и повлияет, то незначительно.

    стоит ли влаживать время для изучения одного из них ?

    Стоит ли познакомиться с еще одним языком? В общем случае ответ положительный. Тем более что все эти языки достаточно простые и первое знакомство займет 2-3 дня максимум.
    Ответ написан
    Комментировать
  • Как реализовать вывод дополнительной информации для наведении?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Как верно заметила Ankhena W решение на чистом CSS вполне работает. Но стоит помнить, что это действие должно происходить не только на :hover, но и на :focus (есть люди, работающие с клавиатуры). Соответственно к элементу, на который вешается hover и focus, скорее всего будет нужно добавить tabindex = 0, чтобы дать этим людям возможность перемещаться по вашим элементам с помощью tab. Пример с плавным появление дополнительной информации: codepen.io/sfi0zy/pen/KNwZGE?editors=1100
    Ответ написан
    Комментировать
  • Доступ к IP посетителя из JS?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Скрипт от Google Analytics выполняет запрос по адресу
    https://www.google-analytics.com/collect?....
    где вместо многоточия что-то около 20 параметров, включающие в себя все то, что смог собрать этот скрипт. Соответственно на стороне сервера к этой информации уже добавляется IP адрес (сервер в любом случае знает откуда этот запрос пришел) и все вместе уже сохраняется в вашу статистику. Другие подобные сервисы действуют аналогичным образом.
    Ответ написан
    2 комментария