Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Каскадное отображение блоков dom с js (https://javascript.ru/forum/misc/86503-kaskadnoe-otobrazhenie-blokov-dom-s-js.html)

maiskiykot 19.06.2025 21:34

Каскадное отображение блоков dom с js
 
Устал уже бороться с этим dom методами css - нужна ваша помощь. В общем несколько блоков на странице скрыты при помощи css display: none. При наведении мыши они появляются, но появляются один под другим, т.е. слоями. Естественно, видимым становится только верхний. Как при помощи js раздвинуть эти блоки каскадом по высоте каждого и сразу следующий? Т.е.
<div class=div></div>
<div class=div></div>
<div class=div></div>
<div class=div></div>
...


Всем спасибо!

ksa 19.06.2025 22:40

Цитата:

Сообщение от maiskiykot
Как при помощи js раздвинуть эти блоки каскадом по высоте каждого и сразу следующий?

Блоки так ведут себя по умолчанию... Располагаются друг под другом. Это уже ты чего-то намудрил в css.

maiskiykot 20.06.2025 08:11

Ясен пень, что так ведут. Но они скрыты и накидываются динамически. Поэтому открываются все в одном месте слоями. Мне надо их раскрывать типа аккордеоном

$('.media-message').each(function(index, element) {  
                        // Вычисление смещения на основе высоты текущего элемента и другого элемента, выбранного по селектору.  
                        var height = $(element).height() - $(otherElement).height();  
                        $(element).css('top', height + 'px');  
                        });


Вот что-то подобное нужно. Но не срабатывает почему-то

Nexus 20.06.2025 11:51

Цитата:

Сообщение от maiskiykot
скрыты при помощи css display: none. При наведении мыши они появляются

При display none на элемент невозможно навести курсор, только на координаты предположительного расположения элемента. Также при display none размеры элемента (ширина, высота) равны 0.
CSS-свойство height описывает не какое-либо смещение элемента, а именно его высоту.

Описанная вами задача и приведенные 2 строки кода, имхо, вообще никак не коррелируют.
Покажите небольшой макетик с проблемой, которая у вас возникает — задача решится очень быстро.


Часовой пояс GMT +3, время: 19:02.