Некорректное отображение datepicker

124
23 июня 2019, 03:20

Ситуация следующая. Есть datepicker, который имеет 2 варианта выпадения: над формой и под ней.


Стоит задача увеличить вертикальный отступ от формы до выпадающего блока.
Вариант с margin не подходит, т.к. когда блок "выпадает" наверх, margin-top смещает его вниз, и он начинает перекрывать форму.
Отступы необходимо сделать одинаковые в 2х случаях выпадения.
Как через js/jquery определить куда выпадает блок и, в зависимости от этого, добавлять соответствующие классы типа ui-datepicker__top / ui-datepicker__bottom .
Или может есть более изящное решение?
К слову, все это крутится на Yii2.

Блок изначально спозиционирован абсолютно и спрятан.

При появлении идет подсчет координат через datepicker.

Answer 1

В моем случае, с несколькими полям ввода дат мне помогло следующее:
Заново инициализировать поля с нужными опциями.

$(".default.datepicker-big").datepicker({
    showOn: "button",
    buttonText: "<svg class='svg-ico calendar-big'><use xmlns:xlink='http://www.w3.org/1999/xlink' xlink:href='/frontfiles/img/svg/sprite.svg#ico-calendar'></use></svg>",
    changeMonth: true,
    changeYear: true,
    firstDay: 1,
    buttonImageOnly: false,
    dateFormat: 'mm.dd.yy',
});

Сравнивать .offset().top блока datepicker с .offset().top кнопки через которую он вызван.

var uiDatepickerDiv = $('#ui-datepicker-div');
$(".ui-datepicker-trigger").on('click', function(){
$(this).offset().top <= uiDatepickerDiv.offset().top ? uiDatepickerDiv.addClass('to-bottom').removeClass('to-top') : uiDatepickerDiv.addClass('to-up').removeClass('to-bottom');
Answer 2

Надо выставить нужному блоку position: absolute;, а также поставить его в нужное положение, например top: 100px; и left: 200px; А при нужном действии, например: спускать нужный блок на 100px вниз.

$('блок, который надо сдвинуть').css('top', 'значение отступа');

Если будет проблема с перекрыванием, то нужно поработать с атрибутом z-index

READ ALSO
Как подключить bootstrap datapicker в React приложение?

Как подключить bootstrap datapicker в React приложение?

Накидал страничку приложения на Bootstrap, подключаю DatePicker сначала ругается, что не знает, что такое $Установил jQuery, импортировал

145
Помогите исправить данный код

Помогите исправить данный код

Имеется код для добавления данных из json в div блоки с одинаковым классом и с уникальным idНо он не работает

120
Как сделать баннер с капающим краном

Как сделать баннер с капающим краном

Как сделать баннер с капающем краном

101