jQuery - как добавить новые данные в блок, заполненный полями с «position: absolute»

0

Пусть имеет следующую структуру HTML:

<div class="items">
  <div class="item" style="position: absolute; left: Apx; top: Bpx;">...</div>
  ...
</div>

Я использую на этой странице также бесконечную разбивку на страницы, поэтому, когда я нажимаю кнопку "Загрузить еще", она называется этим действием JS:

$ ('. items'). append (... новые данные, описанные в разделе ".item" div...);

Данные загружаются, но они отображаются в верхней части .items div => "старые" данные (.item divs) перекрываются новыми. Конечно, я хотел бы отображать новые данные, завернутые снова в .item divs ниже предыдущих (с положением: absolute;), но как это сделать?

спасибо

  • 0
    Какова позиция CSS в div 'items'?
  • 2
    И почему вы используете абсолютно позиционированный div? они не могут просто показываться друг под другом относительно?
Показать ещё 1 комментарий

2 ответа

0

Если я правильно понимаю, тогда я бы рекомендовал вам сделать .items div частью, которая абсолютно позиционирована, в то время как вы делаете элементы .item относительно расположенными внутри нее. Это должно помочь им правильно стекать, когда добавляется больше, сохраняя позицию.

Другим вариантом было бы добавить div вокруг этих элементов, чтобы выровнять их.

0

Поскольку вы добавляете новые divs динамически, вы можете установить их верхнее смещение динамически, что-то вроде этого:

var topValue = $('.items').position().top + $('.items').outerHeight(true) + 'px';
var newDiv = ... // Populate your new div, setting the "top: Bpx" value to topValue
$('.items').append(newDiv);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню