Алгоритм преобразования из Абсолюта в Относительную позицию

0

У меня есть некоторые элементы <div> которые расположены внутри относительного родителя:

Изображение 174551

Мне нужно отобразить эти поля на странице, в том же положении, но также использовать поток страниц.

Например, если один div удаляется, те, которые ниже него, должны двигаться вверх:

Изображение 174551

Поток страниц не работает, если они все еще имеют абсолютное положение.

Существуют ли какие-либо алгоритмы/css-трюки, которые я могу использовать, чтобы отображать divs в том же положении, а также использовать поток страниц?


Демо-версия JSFiddle

Код:

HTML:

<div class="element" style="width: 300px; top: 10px; left: 0;"></div>
<div class="element" style="width: 300px; top: 10px; left: 310px;"></div>
<div class="element" style="width: 300px; top: 50px; left: 0;"></div>
<div class="element" style="width: 300px; top: 50px; left: 310px;"></div>
<div class="element" style="width: 610px; top: 90px; left: 0px;" id="elementToRemove"></div>
<div class="element" style="width: 300px; top: 130px; left: 0;"></div>
<button id="deleteButton" style="position: absolute; top: 170px;">Delete</button>

JS:

$("#deleteButton").click(function () {
    $("#elementToRemove").remove();
});

CSS:

.element {
    position: absolute;
    height: 30px;
    background-color: #f0f0f0;
}
  • 0
    JS Fiddle, пожалуйста,
  • 1
    почему они позиционируются абсолютно в относительном родителе? Есть ли какая-то конкретная причина?
Показать ещё 5 комментариев
Теги:
algorithm

1 ответ

0

Вам нужно изменить атрибут top css, чтобы перемещать элементы вверх или вниз.

Если это число не изменится, то ничего не изменится.

Вы можете изменить его на основе высоты удаленного элемента.

Поэтому в вашем случае вы можете сделать что-то вроде этого:

$("#deleteButton").click(function () {
    var removeElement = $("#elementToRemove");
    var nextElement = removeElement.next();
    nextElement.css('top', removeElement.css('top'));
    removeElement.remove();
});

Демо: http://jsfiddle.net/qwertynl/zLYeU/2/

  • 0
    Я знаю, к сожалению, создание алгоритма, который обнаруживает все перечисленные ниже элементы и перемещает их вверх, является сложным, и я надеюсь на лучшее решение
  • 0
    Почему это сложно? Смотрите мое обновление @RaraituL
Показать ещё 1 комментарий

Ещё вопросы

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