Скопируйте ту же функциональность позиции всплывающей панели событий Календаря Google - PullRequest
0 голосов
/ 18 января 2019

проблема

Я ищу что-нибудь, что могло бы рассказать мне больше о том, как повторить ту же функциональность этой конкретной панели, но не повезло найти учебник или полезный код.

Функциональность

  • Панель появляется при нажатии на события в календаре.
  • Панель каким-то образом вычисляет ширину экрана клиента, чтобы узнать, где находится лучшая область экрана для размещения панели.
  • В то же время при нажатии на другое событие панель текущего открытого события просто переходит в другое, без закрывающего перехода на текущей панели и открывающего перехода на другой панели событий.

Окончательный результат выглядит так же, как и та же панель, которая перемещается по экрану в зависимости от того, какое событие вы щелкнули, и переносит его содержимое в текущее активное событие.

Что я уже сделал

Я использую плагин fullcalendar. Он предоставляет некоторые полезные данные для использования при срабатывании функции clickEvent, например, положение щелчка на экране и т. Д.

Я действительно достиг очень близкого поведения, но у меня все еще есть некоторые проблемы с вычислением лучшего места для показа панели.

Вот рабочая ручка .

Ожидаемые результаты

Я ожидаю, что лучшая логика вычислит лучшее место для отображения панели, не нарушая ни ширину, ни высоту экрана, работая на любом размере экрана.

Вот моя текущая логика

  if ((eventX) > screenX / 2) {
    panel.css('right',eventX + jsEvent.currentTarget.clientWidth)
    panel.css('top',eventY)
  } else {
    panel.css('left',eventX)
    panel.css('top',eventY)
  }

Цените!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...