@scclacmailru

Как сделать всплывающую панель как на андроиде?

Как сделать всплывающую панель как на андроиде?

типо такого
  • Вопрос задан
  • 394 просмотра
Решения вопроса 1
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
  1. Делаем блок контейнер с минимальной высотой во весь вьюпорт.
  2. Делаем в нём 2 "слота". Первый - верхний, где рисочка, за которую пользователь будет тянуть. Второй - сам контент.
  3. Позиционируем его фиксированно так, как больше нравится - вообще не видно, видно только рисочку, видно часть контента.
  4. На рисочку добавляем обработчик нажатия и тача. В момент, пока опущенна кнопка мыши или палец не оторван от экрана отслеживаем на документе позицию курсора\пальца.
  5. Ну и собственно по факту смещения указателя меняем позицию нашего контейнера.
  6. Чтобы у этого "окошка" были состояния стоит добавлять проверку. Например, если текущее состояние "закрыто\открыто" и передвинули вверх\вниз более чем на N пикселей, то менять состояние на противоположное.
  7. Не забываем снимать обработчики с документа когда кнопка мыши отжимается или палец убирается от экрана.
  8. В целом - профит.


Таким образом, состояния отвечают за то, как отобразить элемент. Спрятанным или раскрытым. При смене состояния меняется отображение.
Таким образом, не обязательно будет всё время открывать окошко пальцем. Сменили переменную состояния - оно открылось\закрылось.
Состояния можно хранить в css классах элемента.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
MiiZZo
@MiiZZo
JavaScript, React, NodeJS, Student
Вы хотите, чтобы при нажатии оно всплывало или чтобы, зажимая лкм, можно было ее двигать?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы