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

    shamilist
    @shamilist
    Аналитик
    Можно решить задачу через css стили.

    1. У меню указать свойство position: fixed.
    2. Создать класс active, который отвечает за то, что элемент видно.
    3. Создать класс hidden, который отвечает за то, что элемент не видно.
    В зависимости от видимости/невидимости меню в начале указываете один из классов по умолчанию, они должны менять друг друга при событии click на нужный элемент.
    4. Указать классу hidden свойство left: -ширина меню в пикселях. Например: left: - 100px. Меню исчезнет влево и уйдет из основного потока страницы.
    5. Указать классу active свойство left: 0. Т.е. меню возвращается на страницу.
    Можно указать и right, зависит от того, с какой стороны будет находится меню.
    6. Пример JS кода с логикой замены этих классов у элемента:

    const button1 = document.querySelector('.sidebar__button');
    const field = document.querySelector('.field');
    const menu = document.querySelector('.menu');
    
    button1.addEventListener('click', () => {
        menu.classList.replace('active' , 'hidden');
    });
    
    field.addEventListener('click', () => {
        menu.classList.replace('hidden', 'active');
    });
    Ответ написан
    Комментировать