проблема
Я ищу что-нибудь, что могло бы рассказать мне больше о том, как повторить ту же функциональность этой конкретной панели, но не повезло найти учебник или полезный код.
Функциональность
- Панель появляется при нажатии на события в календаре.
- Панель каким-то образом вычисляет ширину экрана клиента, чтобы узнать, где находится лучшая область экрана для размещения панели.
- В то же время при нажатии на другое событие панель текущего открытого события просто переходит в другое, без закрывающего перехода на текущей панели и открывающего перехода на другой панели событий.
Окончательный результат выглядит так же, как и та же панель, которая перемещается по экрану в зависимости от того, какое событие вы щелкнули, и переносит его содержимое в текущее активное событие.
Что я уже сделал
Я использую плагин 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)
}
Цените!