Задать вопрос
Ответы пользователя по тегу JavaScript
  • Не могу понять работу метода .map?

    @alexalexes
    **
    Пройдемся по массиву и вернем новый массив с такими элементами:
    Если шагнули на нулевой элемент (index == 0), то вернем слово как элемент в новый массив как есть (.... ? word : ....)
    Если шагнули на ненулевой элемент, то Меняем регистр у первой буквы (... : word[0].toUpperCase() + word.slice(1)...) и вернем результат как элемент в новый массив.
    Ответ написан
    Комментировать
  • Winwheel.js Как высчитать на каком сегменте остановится колесо?

    @alexalexes
    Читайте комментарий.
    // This formula always makes the wheel stop somewhere inside prize 3 at least
    // 1 degree away from the start and end edges of the segment.

    Сектор "Приз 3" находится за 90-ым градусом по часовой стрелке.
    Чтобы попадать туда, минимально число должно генериться чуть более 90, например, 91.
    Рандом генерирует веществ. числа в интервале 0...1.
    Нам нужно не выбежать из сектора за верхнюю границу.
    Секторов 8, на один сектор приходится 45 градусов.
    91 + 45 = 136 градусов, убежали в следующий сектор.
    Берем 44, оказываемся на границе секторов.
    Берем 43 - то, что надо, нашли верхний предел генерации параметра (134 градуса).
    PS:
    91 - это минимальный параметр;
    43 - макс. внутрисекторное смещение.
    Ответ написан
    2 комментария
  • Как производить расчёты в процентах?

    @alexalexes
    1) Вычисление процентных долей - это вопрос к методу вычисления.
    2) Разделитель добавляется с помощью метода join при выводе массива:
    text.innerHTML = arr.join(', ');
    Дисконт лучше считать вне цикла, и завести под него отдельный массив:
    var dis = arr.map(function (item)
    {
      return Math.round(item - item * (5 / 100.0));
    });

    https://codepen.io/anon/pen/rgLBpd
    Ответ написан
    Комментировать
  • Как отправить форму без перезагрузки страницы?

    @alexalexes
    xhr.send(file); // отправили файл аяксом, мы молодцы.
        document.getElementById('uploadDropForm').submit(); // зачем-то еще отправляем форму традиционным способом, наверное тут мы что-то делаем не так.???

    Еще нужно ответить на вопрос "А был ли мальчик?", то есть что вы передаете в метод send:
    ...
    console.log(file);
    xhr.send(file);
    ...
    Ответ написан
  • Как передать в string.match(???) переменную и как сделать автоклик?

    @alexalexes
    1)
    let regExpB = textContent.match(begin); // передаю. и на выходе null
        let regExpE = textContent.match(end );  //

    А вы получаете тот же самый результат, когда begin и end при отладке заменяете на статичные регулярки, по формату аналогичные тому, что формируется в begin и end. Может проблема в корректном формировании begin и end, а не в их выполнении?
    2) addE.dispatchEvent(ev); заменить на addE.click() - вроде самый простой поджигатель события, если на элементе есть обработчик или доступно какое-нибудь действие по умолчанию для клика, то должно работать.
    Ответ написан
    1 комментарий
  • Как сделать ссылки кириллицей в кнопке поделиться?

    @alexalexes
    Чтобы конструировать самостоятельно get-параметры в ссылке вам нужно полностью соблюдать стандарт кодирования символов RFC 3986.
    На стороне сервера это делается так:
    https://www.php.net/manual/ru/function.rawurlencode.php
    https://www.php.net/manual/ru/function.rawurldecode.php
    На стороне клиента так:
    https://developer.mozilla.org/ru/docs/Web/JavaScri...

    Чтобы строго соблюдать RFC 3986 (который резервирует !, ', (, ), и *), даже не смотря на то, что символы не используют сформированных URI разделителей, можно безопасно использовать следующее:

    function fixedEncodeURIComponent (str) {
    return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
    return '%' + c.charCodeAt(0).toString(16);
    });
    }
    Ответ написан
    2 комментария
  • Как прекрутить редирект к Api Яндекс карт?

    @alexalexes
    Чтобы определить используемый язык клиентской стороны сайта достаточно проанализировать свойства window.navigator.
    Как определить язык браузера пользователя?
    PS:
    header('loacation ') - вы не можете использовать это в JS, это PHP.
    В JS то же поведение вызывается изменением свойства window.location.href
    Ответ написан
    Комментировать
  • Как сделать визуальный эффект на сайте в виде колонок?

    @alexalexes
    Делать правые и левые отступы, ширину элементов кратно размеру колонки.
    Приведенный пример эту идею и воспроизводит, нужно только покопаться в Elements в панели разработчика браузера, чтобы увидеть эту закономерность.
    Ответ написан
    Комментировать
  • Как изменить состояние checbox?

    @alexalexes
    Поставьте эту функцию в обработчик клика для вашей гипотетической кнопки:
    <input type="button" onclick="func2()"/>
    Ответ написан
    Комментировать
  • Как вызвать функцию, если значение оператора if == false?

    @alexalexes
    def = document.getElementById('put_in');
    А вы уверены, что def содержит значение элемента инпута, вместо самого инпута?
    В def, по хорошему, нужно анализировать не сам инпут, а значение его свойства value:
    if (def.value == 488)
    Ответ написан
    2 комментария
  • Не идёт отсчет после ввода числа( ошибок нету)?

    @alexalexes
    else(parseInt(input.value)==0)
    В else зачем написали условие? Оно там не нужно, на то и else.
    https://jsfiddle.net/2u9raep5/3/
    Ответ написан
  • Почему в таком коде не работает вызов метода конструктора?

    @alexalexes
    При вызове вы не передаете параметр,...
    console.log(Journal1.formatDate(/*где ваш параметр?????*/));

    ... хотя в определении метода указано, что он должен передаваться
    this.formatDate = function(date /*- а параметр то есть*/)
    Ответ написан
    2 комментария
  • Как получить id элемента с определенным классом по которому кликнули?

    @alexalexes
    Если изначально правильно повесить обработчик на элемент, то при выполнении обработчика искать этот элемент не нужно, его дескриптор будет находится в свойстве e.target дескриптора события.
    Ответ написан
    Комментировать
  • Как передать координаты произвольному элементу на странице?

    @alexalexes
    Если чисто "механически" сообщить значение top от одного элемента превью к соответствующему элементу со схожим id = data-mini, то это можно сделать так:
    var e_prevs = $('div.side div.preview'); //выбираем все превью-элементы
    e_prevs.each(function(index) //пробегаемся по превью элементам
    {
       var id = this.id; //this - это текущий элемент превью, получаем его id.
       var link = $('div.main div.element[data-mini=' + id + ']')[0]; //находим элемент-ссылку, у которого есть схожий атрибут data-mini.
       var top_e_prev = this.offsetTop; // получаем знач. свойства от начала страницы
       link.offsetTop = top_e_prev; // присваиваем это значение ссылке
    });

    Чтобы элементы фактически встали по одной высоте, нужно указать правильные CSS-свойства position опорного контейнера div.container {position: relative;}, а превью-контейнерам давать абсолют, но тут нужно смотреть, как на такие изменения отреагирует весь остальной контент, находящийся в том же контейнере.

    PS: Или наоборот передавать свойства...
    var main_els = $('div.main div.element');
    main_els.each(function (index)
    {
       var data_mini = this.dataset.mini;
       var link = $('div.side div.preview#' + data_mini)[0];
       var top_el = this.offsetTop;
       link.offsetTop = top_el;
    });
    Ответ написан
  • Как скачать изображение с поле input?

    @alexalexes
    Самый простой вариант - отправить запросом на сервер и ответить тем же содержимым, что отправили серверу с таким же mime-тайпом (предусмотреть все необходимые заголовки отдачи файла).
    Ответ написан
    Комментировать
  • Как делаются нестандартные элементы форм доступными, кроссбраузерными?

    @alexalexes
    В идеале, в шапке страницы сайта должен быть переключатель версии дизайна для слабовидящих (по значимости такой же как RUS/ENG).
    Тут есть рекомендации, как сделать версию сайта для слабовидящих. В том числе, обозначен совет, как сделать так, чтобы скринридеры читали заголовки полей формы, но сами заголовки визуально не отображать.
    Если лейбл нужно скрыть, расположите его перед полем, используйте привязку атрибута for и специальный класс для вспомогательных технологий:

    .visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    border: 0;
    padding: 0;
    clip: rect(0 0 0 0);
    overflow: hidden;
    }
    Этот класс скрывает лейбл визуально, но его прочтут скринридеры. Обратите внимание, что скринридеры и другие вспомогательные технологии, как и браузеры, скрывают элементы с использованием display: none и visibility: hidden.
    Ответ написан
    4 комментария
  • Как принудительно установить Cookie на своем сайте?

    @alexalexes
    Поставили тег Javascript, а сами пример показываете с подключением CSS, хотя он и рядом не стоял.
    В общем, это предмет целой статьи, изучайте.

    PS: Есть подозрение, что вам нужно настроить на стороне сервера какой-то особый отклик на GET-параметр "wmc-currency=EUR", но вы должны понять, нужно ли вам это, потому что есть другие решения для установки кук и они работают в JS.
    Ответ написан
    3 комментария
  • Как отправить mp3 файл на сервер?

    @alexalexes
    1) Можно традиционным образом. В форме использовать тег input с типом file с выставленным ограничением принимать только *.mp3. Форма отправляется по кнопке с типом submit.
    2) Продвинутым способом. В форме также используется тег input с типом file с выставленным ограничением принимать только *.mp3. Отличие в том, что вам нужно поля формы отправить непременно только через ajax-запрос. В этом случае поле с файлом вычитывается с помощью объекта FileReader (старые браузеры его не имеют, например, IE 10-, так что для них не катит способ), формируется особым образом бинарный пакет запроса и этот пакет в виде base64 передается аяксом на сервер.
    PS: какой бы способ отправки вы бы не выбрали, файл в любом случае можно прицепить к форме только по инициативе пользователя, не зависит от того, используете вы простую отправку формы или пытаетесь забрать файл из input-а FileReader-ом.
    Ответ написан
    Комментировать
  • Отправка двух форм по нажатию одной кнопки?

    @alexalexes
    У вас при первом отображении $_SESSION["a"] и $_SESSION["b"] не заполнены, соответственно, при выводе второй формы будет вот так.
    <input type="hidden" id = "nserver" name="nserver" value="">
          <input type="hidden" id = "registrar" name="registrar" value="">

    Придумайте, как обработать состояние, когда поля nserver === '' и registrar === '' или как забить $_SESSION["a"] и $_SESSION["b"] дефолтными значениями, и будет работать.
    Ответ написан
  • Как делается drag and drop на странице?

    @alexalexes
    Может быть реализовано на нативном JavaScript путем навешивания обработчиков событий onmousedown, onmousemove, onmouseup на манипулируемый элемент (событие onmousedown), а также на заполняющий всю площадь страницы контейнер (события onmousemove, onmouseup). Естественно, механику взаимодействия элементов и отслеживания фазы drag and drop вам придется реализовать самостоятельно.
    PS: При реализации drag and drop не забудьте про пользователей с сенсорным экраном. У них другая группа событий: ontouchstart, ontouchmove, ontouchend, и число точек касаний у них может быть больше чем одна.
    Ответ написан
    Комментировать