• Как сделать так, чтобы элемент можно было тащить влево-вправо?

    @alexalexes
    1. На десктопе рулят события мыши: mousedown - эквивалент touchstart, mousemove - эквивалент touchmove, mouseup - эквивалент touchend.
    2. Вместо множества точек касаний (пальцы) у вас одна точка - курсор мыши, поэтому свойства changedTouches в объекте события не будет.
    3. Тестировать, что окружение браузера имеет сенсорный экран, можно проверкой наличием доступного свойства любого события touch в window:
    if("touchstart" in window)
    {
      // работаем с сенсорными обработчиками
    }
    else
    {
      // работаем с мышиными обработчиками
    }

    4. Событие завершения управления элементом (touchend, mouseup) лучше вешать не на сам элемент item, а на его контейнер, который будет занимать всю ширину экрана (идеально, если это будет body). Логика обработки может застрять на обработчике move, если во время движения точка воздействия на объект убежит за пределы объекта.
    В определенных случаях могут выручить события mouseover/mouseout.
    Ответ написан
    Комментировать
  • Как убрать из "памяти" уже добавленный фильтр на страницу?

    XanXanXan
    @XanXanXan
    submitBtn.addEventListener('click', () => {
      filterAddBox.innerHTML = '';
      checkboxButtons.forEach(checkbox => {
        if (!checkbox.checked) return;
    
        const checkboxText = checkbox.nextElementSibling.nextElementSibling.innerText; 
        const addFilterHTML = document.createElement('div');
        addFilterHTML.classList.add('filter__add');
        addFilterHTML.textContent = checkboxText;
        filterAddBox.appendChild(addFilterHTML);
      })
    })
    Ответ написан
    Комментировать