zorro76
@zorro76

Как откорректировать скрипт?

Скрипт ищет в массиве у его потомком события even-item, если их большего одного то присваивает им класс overlap. Дальше (на примере 2 события найдены, но события добавляются динамически и их может быть и 10) цикл выводит динамические значения left и right. Проблема как корректно эти значения передать каждому из 2 событий (для первого left:0%, right: 50%, для второго left: 50%, right: 0%)
$('.week-view .hour-grid .days .day').each(function () {
        const cell = $(this).find('.cell');
        
        for (let i = 0; i < cell.length; i++) {
            const eventsList = cell[i];
            const events = eventsList.children.length; // 2

            for (const event of eventsList.children) {
                event.classList.add('overlap');
            }
            
            if (events > 1) {
                for (let y = 0; y < events; y++) {
                    let left = 100 / events * y + '%';
                    let right = 100 - 100 / events * (y + 1) + '%';

                    console.log(left); //0%   // 50%
                    console.log(right); //50%  // 0%

                    $('.event-item.overlap').css({
                        'left': left,
                        'right': right
                    });
                }
            }
        }
    })
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
zorro76
@zorro76 Автор вопроса
$('.week-view .hour-grid .days .day').each(function () {
        const cell = $(this).find('.cell');
        
        for (let i = 0; i < cell.length; i++) {
            const eventsList = cell[i];
            const events = eventsList.children.length; // 2

            for (const event of eventsList.children) {
                event.classList.add('overlap');
            }
            
            if (events > 1) {
                for (let y = 0; y < events; y++) {
                    let left = 100 / events * y + '%';
                    let right = 100 - 100 / events * (y + 1) + '%';

                    console.log(left); //0%   // 50%
                    console.log(right); //50%  // 0%

                    $('.event-item.overlap').eq(y).css({
                        'left': left,
                        'right': right
                    });
                }
            }
        }
    })
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SpiderPigAndCat
@SpiderPigAndCat
занимаюсь салообразованием
$('.event-item.overlap:eq(0)').css({
                
                        'right': right
                    });
$('.event-item.overlap:eq(1)').css({
                        'left': left,
                       
                    });


может поможет) но ты что-то делаешь не так, слишком замудренно. можно чекнуть сайт?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект