Задать вопрос
  • Как вызвать js по достижению определенного div?

    Kozack
    @Kozack Куратор тега JavaScript
    Thinking about a11y
    Используйте Intersection Observer
    Ответ написан
    Комментировать
  • Быстрый ответ/консультация на тему программирования?

    @lomeat
    абстрактный ленивый прокрастинатор
    Да банально чатики всякие. Вообще не понимаю как можно чему-то обучаться, если не находиться в профильных кругах. Тот же чат по JS в телеге: https://t.me/JS_learn
    Но я там все ненавижу, кто задает простые вопросы, которые можно погуглить.
    В гуглении нет ничего плохого, наоборот бесят люди, которые не умеют гуглить. Это второй навык любого человека, связанного с работой за ПК, имхо. Потому что по сути это и есть самый точный и развернутый ответ, который ты только сможешь найти. А люди лично тебе могу лишь просто более доступно объяснить какие-то вопросы, но не более.

    Например, я недавно делал конструктор картинок и я гуглил часа 3 наверное, чтобы понять, что у браузера нет API для редактирования картинок как мне надо и пришлось допирать до рисования на канвасе. Просто я к тому, что я до этого сам дошел с гуглом и многому научился и теперь могу рассказать от и до как это все работает. А в чатике мне бы так не помогли. А если бы дали сразу рабочий код, то вообще все плохо.
    Ответ написан
    Комментировать
  • Сдвинуть каждый последующий блок на +px?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Кого надо подвинуть: const selector = '.test_wr .test_block';.

    Какое свойство будет отвечать за изменение положения элементов и как его значение будет зависеть от индекса конкретного элемента:

    const key = 'top'; // или 'margin-top'
    const getVal = i => (i * 100) + 'px';
    
    // или
    
    const key = 'transform';
    const getVal = i => `translateY(${i * 100}px)`;

    Вот так всё просто получается:

    $(selector).css(key, getVal);
    
    // или
    
    document.querySelectorAll(selector).forEach((n, i) => {
      n.style[key] = getVal(i);
      // или
      n.style.setProperty(key, getVal(i));
      // или
      n.style.cssText += [ key, ': ', getVal(i) ].join('');
      // или
      n.setAttribute('style', key.concat(': ', getVal(i)));
    });
    Ответ написан
    Комментировать
  • Как сделать точное вычисление физики гравитации на javascript в canvas методом Верле?

    Могу ошибаться, но по-моему вы собираетесь решить задачу трёх тел ) У вас есть статичные планеты, которых в природе нет, так что реальную физику вы уже не построите. А эмуляцию… как уже советовали, подбирайте параметры. Ограничения на ускорения при гравитационном маневре, расчет гравитации не только ближайшей статической планеты, но и их ансамбля. Такое вот.
    Ответ написан
    Комментировать
  • Как сделать точное вычисление физики гравитации на javascript в canvas методом Верле?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    elleremo, ускорение которое получают планеты пролетая вблизи других планет не является ошибкой!!!

    Этот эффект называется "гравитационный маневр для ускорения объекта" или же "гравитационная праща"

    Swingby_acc_anim.gifГравитационный манёвр для ускорения объекта (гравитационная праща)

    Не стал делать "точную имитацию" гравитации. Пошел по пути:
    1. каждый объект имеет массу равную объему объекта умноженному на плотность объекта
    2. каждый объект влияет на каждый динамический объект
    3. влияние пошагово рассчитывается по формуле (почти) :
    V = сумма(F); // суммарный вектор сил
    F = k*M/D; // сила влияния (расчитывается для каждого объекта оказывающего влияние на текущий)
    M - масса объекта
    D - квадрат расстояния между центрами масс объектов
    k - коэффициент для подгона скоростей (выполняет роль гравитационной постоянной)

    Алгоритм расчета (пошагово):
    1. Для каждого динамического объекта происходит расчет новых координат (сумма текущих координат и вектора скорости, рассчитанного на предыдущей итерации цикла симуляции)
    2. Каждый динамический объект сверяется с каждым объектом на предмет столкновения. Если расстояние между центрами 2х сравниваемых объектов меньше суммы их радиусов то происходит слияние. Если объединяются статичный и динамический объекты, то динамический удаляется а его масса добавляется к статическому с перерасчетом плотности, радиуса и объема. Если объединяются 2 динамических объекта то к первому добавляется масса второго с перерасчетом плотности, радиуса и объема, координаты и вектора скоростей пересчитываются как взвешеная сумма координат и векторов скоростей обоих объектов. После второй объект удаляется.
    3. Для каждого динамического объекта расчитывается сумма векторов силы влияния притяжения всех объектов. Затем данная сумма и вектор скорости текущего объекта суммируются
    4. Переход к новой итерации цикла симуляции.

    Вся реализация расчета тут (в конце скрипта). Все формулы вынесены в класс Calc.

    видеодемонстрация
    демонстрация (масштабируется колесиком мышки, перетаскивается с помощью ЛКМ)

    Добавил слияние планет при столкновении (массы суммируются, вектора скоростей суммируются, позиция переносится в центр масс)
    Добавил источники (автоматически генерируют планеты)
    Добавил отдельные кнопки для пуска и остановки источников

    5bbd21b57da99316097769.png
    Добавил настройки:
    • параметры отображения
      • отображать сетку - вкл/выкл отображение координатной сетки
      • отображать источники - вкл/выкл отображение объектов, генерирующих планеты
      • отображать шлейф - вкл/выкл отображение траектории планет

    • Настройки физических величин - позволяют задаь минимальные и максимальные значения для размеров и плотности статических и динамических объектов
    • Управление симуляцией
      • шаг симуляции - экспериментальная величина регулирующая точность расчетов
      • скорость источников - изменяет скорость, с которой источники генерируют планеты
      • включить источники - вкл/выкл генерацию планет источниками



    Доработал механизм расчета влияния гравитации, теперь у каждого объекта масса считается исходя из объема и плотности.
    Ввел изменение в процесс генерации новых планет, теперь они выставляются на лист с рассчитанной первой космической скоростью относительно центрального статичного объекта.
    Установил статичным объектам повышенную плотность, что существенно увеличило их массу (можно менять на панели настроек)
    Установил динамическим объектам пониженную плотность, что существенно уменьшило их массу и взаимовлияние (можно менять на панели настроек)

    5bbd22bc10be0483291405.png
    Ответ написан
    2 комментария
  • Как сопоставить id и результат?

    0xD34F
    @0xD34F
    array_map(function($id, $result) {
      return compact('id', 'result');
    }, explode(',', $ids), explode('|', $results))
    Ответ написан
    Комментировать
  • Как написать get запрос с несуществующего сайта?

    @sergeyfilippov4
    Веб-сервер:
    import json
    from flask import Flask
    
    test_dict = {"foo": "var"}
    json_ = json.dumps(test_dict, indent=4)
    
    app = Flask(__name__)
    @app.route('/')
    def index():
        return json_
    
    app.run()


    Парсер:
    import requests
    
    request = requests.get(IP)
    dict_ = request.json()
    Ответ написан
    1 комментарий
  • Как написать get запрос с несуществующего сайта?

    idegree
    @idegree
    Senior Workaround Developer
    Написать mock-сервер, который будет все это отдавать.
    Postman умеет делаеть mock-сервер просто из JSON-файла.
    Ответ написан
    1 комментарий
  • Как получить полный html код с jQuery ??

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Можно использовать свойство outerHTML – стандартное, из чистого JS.
    $(".item")[0].outerHTML

    и, раз уж на то пошло, jQuery тут вообще не нужен:
    document.querySelector('.item').outerHTML
    Ответ написан
    Комментировать
  • Javascript framework, который использует "$"?

    var $ = function(){}
    И получаешь конфликт на ровном месте.
    Ответ написан
    Комментировать
  • Объясните пожалуйста, как работает, и что делает этот код?

    Seasle
    @Seasle Куратор тега JavaScript
    К примеру
    topSalary({
    	'John': 10000,
    	'Emily': 11000,
    	'Bob': 9200,
    	'Alice': 11010
    }); // Alice
    . Далее, max для цифры, maxName для ключа в объекте. Object.entries(salaries) этот код из объекта делает массив массивов, такой:
    [['John', 10000], ['Emily', 11000], ['Bob', 9200], ['Alice', 11010]]
    . Часть const [name, salary] of ... это деструктурирующее присваивание, т. е. в name попадает ключ, а в salary число (в данном случае). Ну а дальше обычный алгоритм поиска максимального числа и возврат ключа (maxName).
    Ответ написан
    3 комментария
  • Как работает этот код?

    SagePtr
    @SagePtr
    Еда - это святое
    Криво работает и неоптимально. Весь этот код можно было заменить на вызов одной функции filter
    Ответ написан
    2 комментария
  • DigitalOcean как не платить НДС 20%?

    opium
    @opium
    Просто люблю качественно работать
    Укажите другую страну
    Ответ написан
    8 комментариев
  • Как изменить дату?

    @bedolazhka
    $date = '2020-11-27';
    echo DateTime::createFromFormat('Y-m-d', $date)->modify('+ 1 day - 1 year')->format('F d, Y');
    Ответ написан
    1 комментарий
  • Какую CMS порекомендуете для практики в PHP?

    Lillipup
    @Lillipup
    Allons-y, Алонсо!
    Frameworks > laravel
    Ответ написан
    Комментировать
  • Как определить то, что возвращает метод в PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Да, с вопросами у тебя полная беда. Если уж даже просто вопрос не можешь нормально задать, то с поисковиком можешь даже не пытаться.
    Я думаю, в ближайшее время гугль изобретет специальный интерфейс для детей, воспитанных ютубой и не обладающих навыками связной речи. Чтобы эти "бэ-мэ" транслировались в поисковый запрос на основании предыдущих интересов пользователя. А пока придется вытягивать из тебя по ложечке.

    Что за ошибка?
    Почему класс для работы с БД возвращает не значение из БД, а какую-то помойку в которой навалено все в одной куче?
    Зачем тебе определять, что вернул метод, если ты и так знаешь, что метод возвращает объект?
    Зачем тебе Any, если ты как раз хочешь знать, что конкретно тебе вернул метод? Тебе все-таки конкретный тип нужен, или любой?
    Ответ написан
    3 комментария
  • Для чего ставят знак $ в скриптах JS?

    NeiroNx
    @NeiroNx
    Программист
    $ - это имя функции.
    в JavaScript имена функций могут начинаться с $
    Ответ написан
    Комментировать
  • Как осуществить поиск по Regex?

    @dodo512
    (^|,)305($|,)
    Ответ написан
    Комментировать