Задать вопрос
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 Простой Комментировать
Решения вопроса 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,
                       
                    });


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

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

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