Задать вопрос
Ответы пользователя по тегу JavaScript
  • Создание бота в мессенджере, как правильно начать?

    Abr_ya
    @Abr_ya
    можно начать отсюда - Telegram бот очень быстро, но там скорее азы для понимания, куда идти дальше:
    https://www.youtube.com/watch?v=1XA3CM3Mybs
    Ответ написан
    Комментировать
  • Как сделать, чтобы играла музыка при наведении на картинку?

    Abr_ya
    @Abr_ya
    Движения мыши
    Там есть примеры. Берите тот, что ближе всего к вашему и правьте под свой случай.

    Чтобы "навесить" событие на ваш элемент (картинка), нужно получить его в переменную, смотрите тут:
    https://learn.javascript.ru/searching-elements-dom

    обратите внимание на то, что с изображением можно работать после того, как оно загрузится:
    https://learn.javascript.ru/onload-ondomcontentloaded
    поэтому я бы использовал обвертку и обращался к ней по id.
    Ответ написан
    Комментировать
  • Как правильно отфильтровать массив массивов объектов?

    Abr_ya
    @Abr_ya
    Что-то красивое решение на ночь глядя не получается.
    А ведь хочется, чтобы работало с любым набором свойств!
    Навскидку такой вариант:
    1) объединить массивы,
    2) создать массив id и массив свойств,
    3) пройти по массиву свойств - оставить индексы только уникальных элементов,
    4) собрать массив уникальных элементов на основе индексов полученных в п.3 из массивов, полученных в п.2.

    Выглядит это примерно так:
    const arr1 = [
        {id: 1, name: 'test'},
        {id: 2, name: 'test2'},
        {id: 3, name: 'test3'}
    ];
    const arr2 = [
        {id: 4, name: 'test4'},
        {id: 5, name: 'test5'},
        {id: 6, name: 'test3'}
    ];
    
    const newArr = [...arr1, ...arr2];
    console.log(newArr);
    const idArr = newArr.map((item) => (item.id));
    console.log(idArr);
    const dataArr = newArr.map((item) => {
        delete item.id;
        return JSON.stringify(item);
    });
    console.log(dataArr);
    uniqueIdArr = dataArr.map((item,index) => {
        if (!dataArr.slice(0,index).includes(item)) return index;
    }).filter(id => (id !=undefined));
    console.log(uniqueIdArr);
    uniqueArr = uniqueIdArr.map(id => ({id: idArr[id], ...JSON.parse(dataArr[id])}));
    console.log(uniqueArr);

    Если не пойдет как решение, то может какие-то идеи пригодятся.)
    Ответ написан
    Комментировать
  • Media запросы не срабатывает?

    Abr_ya
    @Abr_ya
    Уберите ";" из медиа-запроса!

    P.S. На будущее: давайте больше информации. Уверен, вам бы ответили быстрее, если бы не надо было открывать ваш сайт и там пытаться понять, что именно у вас на срабатывает!
    Примерный формат: что хочу, что вижу сейчас, что делаю. Можно иллюстрировать скриншотами!)
    Ответ написан
    Комментировать
  • Как использовать ссылку только один раз?

    Abr_ya
    @Abr_ya
    Так как совершенно непонятна ваша система/инструменты, очень условно представляется так:
    - таблица в БД с отправленными ссылками,
    - при открытии страницы регистрации проверяете ссылку, у неё есть двоичное свойство "использована",
    - при успешном завершении регистрации помечаете ссылку, как использованную.
    Ответ написан
    Комментировать
  • Как достать текст из тега и поместить его в переменную?

    Abr_ya
    @Abr_ya
    Можно посмотреть варианты здесь:
    https://itchief.ru/lessons/javascript/javascript-d...
    Если нужно с тегами работать, или ещё какие-то нюансы есть.
    Ответ написан
    Комментировать
  • Как написать правильно скрипт для оптимизации и вывода своей метки для яндекс карты?

    Abr_ya
    @Abr_ya
    Если я правильно понял Вашу задачу, своя метка на Я.К создается примерно так:
    //создаем объект
            var myPlacemark1 = new ymaps.Placemark([44.000000,33.000000], {
                iconContent: 'someText', // текст метки, может быть произвольным
                hintContent: 'someText', // подсказка при наведении
                balloonContentHeader: 'ТsomeText'
            }, {
                iconLayout: 'default#image', // Необходимо указать данный тип макета.
                iconImageHref: 'img/marker.svg',// Своё изображение иконки метки.
                iconImageSize: [35, 50],// Размеры метки.
                iconImageOffset: [-5, -38] // Смещение левого верхнего угла иконки относительно точки привязки
            });
    
            // добавляем объекты на карту
            myMap.geoObjects.add(myPlacemark1);
    Ответ написан
    Комментировать
  • Какие есть способы вывода текста(не только в документ) на нативном JS?

    Abr_ya
    @Abr_ya
    Свойство ИмяОбъекта.textContent.
    Получать и задавать текст.
    innerHTML, если надо с тегами.
    Ответ написан
    Комментировать
  • Какой курс по HTML/CSS/JavaScript вы посоветуете?

    Abr_ya
    @Abr_ya
    https://htmlacademy.ru/ хвалят.
    У них принципиально два продукта: Интерактивные курсы, которые стоят копейки, и где вы работаете сами, а сайт проверяет, что у вас вышло, и т.н. Интенсивы. Интенсивы стоят уже приличных денег, проходят с наставниками, по ним хорошие отзывы, в т.ч. от знакомых, но сам я там не был. И, да, на выходе они обещают проект(ы)!
    Ответ написан
    Комментировать
  • Как сделать авто скрол при наведени на див?

    Abr_ya
    @Abr_ya
    JS - обработчик события наведения (mouseover) - прокрутка, тут зависит от того, насколько "красиво" хотете сделать - window.scrollBy или функция плавной прокрутки со временем (например, с использованием setTimeout) на его основе.
    Если есть желание сделать быстрее и заморачиваться меньше, можно использовать готовые решения из jQuery.
    Ответ написан
    Комментировать
  • Можно ли использовать setTimeout рекурсивно?

    Abr_ya
    @Abr_ya Автор вопроса
    Интересное поведение исправленной функции обнаружено в Firefox!
    Он поочередно скроллит то на 20, то на 40 пикселей вниз, и, следовательно, прокручивает страницу ниже, чем надо!
    Ответ написан
    Комментировать