Windhack
@Windhack
developer

Почему улетает календарь?

Всем доброго времени суток! Есть такая страница сайта, на которой раньше в сайдбаре нормально работал bootstrap datepicker, после того как было переделано сайдбар со статичного в "прилипающий", начались проблемы с тем же календарем, а именно он работает, но появляется в самом верху на слайдере, что не есть ок. Прошу Вашей помощи в решении данной проблемы, заранее всем спасибо!
  • Вопрос задан
  • 267 просмотров
Решения вопроса 1
Проблема с вашим дейтпикером лежит в этой строчке
document.getElementsByTagName("body").item(0).appendChild(e_cal);
tcall.js 168 строка, если верить дебаг-консоли хрома

То есть получая координаты элемента, по которому сработало событие click, контейнер дейтпикера аппендится к body, имея координаты х и y при display: absolute. Из-за того, что у родительской обёртки section, в котором лежат кнопки дейтпикера, свойство position изменяется на fixed, то вот этот код получения координат
var n_left = f_getPosition (this, 'Left'),
		n_top  = f_getPosition (this, 'Top') + this.offsetHeight;

отсчитывает их НЕ от верха страницы, как это делалось до изменения position, а от верха родительского section, что равняется top: 343px; left: 426px;. И координаты то эти правильны, если отображать его относительно родительского section, но совершенно не верны из-за того, куда аппендится сам дейтпикер.

Теперь вам необходимо переписать функцию отрисовки дейтпикера так, что бы он цеплялся ниже блока с иконкой календарика. Это позволит оставаться ему на нужном месте, даже если пользователь кликнет по календарю и не закрыв его начнёт скролить страницу.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы