У меня есть элемент диапазона дат / календаря ngb-datepicker, который позволяет выбрать диапазон дат.
Даты «от» и «до» имеют темно-синий фон с использованием этого селектора CSS: .custom-day.range
. Я бы хотел, чтобы у даты «от» была треугольная стрелка, указывающая вперед (справа), и у даты «до» с треугольной стрелкой, указывающей назад (влево). В идеале две стрелки должны быть прикреплены к соответствующим сторонам выбранных блоков и перекрывать даты, к которым они рядом (но не перекрывать белый текст).
Вот небольшой макет того, что я собираюсь сделать (извинения за мои ужасные художественные навыки):

Вот весь мой код в Stackblitz (я добавил два элемента со стрелками под фактическим календарем, возможно, это будет полезно):
https://stackblitz.com/edit/angular-vypphf-goekc2
Я пытался использовать ::after
, чтобы добавить треугольный элемент без удачи.
Если бы это был не Angular, я бы просто добавил дочерний элемент к двум датам с треугольником ... но я не очень хорошо разбираюсь в рамках - я все еще учусь.
Шаблон:
<ng-template #t let-date let-focused="focused">
<span class="custom-day"
[class.checkDay]="isCheckDate(date)"
[class.focused]="focused"
[class.range]="isRange(date)"
[class.faded]="isHovered(date) || isInside(date)"
(mouseenter)="hoveredDate = date"
(mouseleave)="hoveredDate = null">
{{ date.day }}
</span>
</ng-template>
<div class="arrow-right"></div>
<div class="arrow-left"></div>
Применимо CSS:
/* HERE IS WHERE I WOULD LIKE TO HAVE ARROW */
.custom-day.range, .custom-day:hover {
background-color: rgb(2, 117, 216);
color: white;
}
.arrow-right {
width: 0;
height: 0;
border-top: 10px solid transparent;
border-bottom: 10px solid transparent;
border-left: 10px solid rgb(2, 117, 216);
}
.arrow-left {
width: 0;
height: 0;
border-top: 10px solid transparent;
border-bottom: 10px solid transparent;
border-right: 10px solid rgb(2, 117, 216);
}
Так что я думаю, что, возможно, это можно сделать с помощью CSS, или, может быть, это можно сделать, добавив div с .arrow-right
и .arrow-left
к элементам начальной и конечной даты динамически ... но я попытался и не смог этого сделать, но опять же я новичок, когда речь заходит об Angular.
Любая помощь будет очень признательна! Спасибо.