[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Draggable vs absolute
bret
Имеется абсолютно позиционированный слой с динамически генерируемым элементами li. Проблема в том, что ui.draggable для li отказывается работать (точнее, выходить за пределы своего родителя). При установке position:relative для слоя-родителя li могут вылазить из него, т.е. работает как и должно.
Ср. http://br3t.org.ua/works/draggableProblem.html
Кто, что может подсказать



Спустя 10 минут, 23 секунды (24.08.2011 - 15:38) ApuktaChehov написал(а):
Я ничего не понял.

Спустя 27 минут, 1 секунда (24.08.2011 - 16:05) bret написал(а):
  • Есть <div style='position:absolute'>
  • Внутрь него посредством js динамически пишутся <li>
  • Для каждого <li> навешивается ui.draggable
  • При этом <li> не "вытаскиваются" за пределы <div>
  • А надо, чтобы вытаскивались
  • При этом при установке <div style='position:relative'> элементы <li> вытаскиваются
  • Как сделать, чтобы вытаскивались?


Спустя 27 минут, 22 секунды (24.08.2011 - 16:32) ApuktaChehov написал(а):
Уберите у дива overflow-y: auto;

Спустя 6 часов, 21 минута, 32 секунды (24.08.2011 - 22:54) bret написал(а):
Он принимает visible по умолчанию. Если убрать auto то при большом количестве элементов они займут кучу места по вертикали, что совершенно не подходит

Спустя 10 часов, 10 минут, 18 секунд (25.08.2011 - 09:04) ApuktaChehov написал(а):
Значит вы хотите, что-бы одновременного и прокрутка была и список выезжал за див? Или же вы хотите, что бы при определенной высоте списка появлялась прокрутка? Мне неясно, зачем вам надо, что бы список из дива вылезал.

Спустя 1 час, 40 минут, 56 секунд (25.08.2011 - 10:45) Гость_bret написал(а):
Данные div является результатом автокомплита. Результатов может быть непредсказуемое число, но хотелось бы иметь ограничение по вертикали, поэтому вертикальный скролл необходим. А элемент списка нужно вытягивать из дива, чтобы бросать его в располагаемый рядом другой див.

Спустя 11 минут, 9 секунд (25.08.2011 - 10:56) ApuktaChehov написал(а):
Могу посоветовать сделать position:relative, а при нажатии на li сделать position:absolute.

Работать вроде должно, но хз.

Насколько я понял. У вас есть див, в нем может быть сколько угодно много li.
Вам нужно вытащить(drag and drop) из этого дива один li и куда то положить.
Но для того, что бы их можно было вытаскивать, нужно что бы они были position:absolute, но при этом они вылазят за див, а не прячутся за прокруткой.

Я правильно понимаю?

Спустя 38 минут, 36 секунд (25.08.2011 - 11:35) Гость_bret написал(а):
Почти так.
В реальной ситуации вы заполняете текстовое поле и по мере заполнения вылазит абсолютно спозиционированный див с вариантами предложения автодополнения li.
Рядом имеется другой див, в который мы хотим дропать появившиеся li. При этом текстовое поле может быть где угодно на странице и див позиционируется относительно его с перекрытием имеющегося под полем текста. Див-родитель ограничен по высоте, и сколько li будет в нём - неизвестно, потому подстраховываемся прокруткой.

Спустя 50 минут, 51 секунда (25.08.2011 - 12:25) ApuktaChehov написал(а):
Ну так, див есть, li в нем есть. У li position:relative все li сидят в этом диве с прокруткой. Теперь при нажатии на любой li, нужно задать ему position:absolute и таскать куда надо.

Вот как то так.

Спустя 27 минут, 59 секунд (25.08.2011 - 12:53) Гость_bret написал(а):
Судя по тому, что li таскается внутри дива, я подозреваю, что позишн у него уже абсолют, хотя проверить это проблематично
При генерации принудительно пишу клону position:absolute , но толку от этого нуль

Спустя 10 минут, 17 секунд (25.08.2011 - 13:04) ApuktaChehov написал(а):
Что значит таскается внутри дива? А за границу его не вылазит? или как? не понял

Спустя 41 минута, 2 секунды (25.08.2011 - 13:45) Гость_bret написал(а):
Посмотрите пример по ссылке в первом посте.
Жмакаете сначала "Open autocomplete" и пробуете перетаскивать элементы Qwerty i на текст. Тут position:relative и элементы тянутся, только текст позиционируется неправильно относительно div
Теперь жмакаете "Toggle position: relative" (должно стать "Toggle position: absolute") - текст разместился правильно, но li не хотят покидать родительского дива

Спустя 15 минут, 58 секунд (25.08.2011 - 14:01) ApuktaChehov написал(а):
Не уходит, возможно потому что вы новый объект, которыей двигаете, создали элементом этого же списка. Почему бы перетаскиваемый объект не создать как div, и не добавить в тег body, в место того, что бы добавлять его в этот же див?

Вообще логично было бы, добавить объект в body раз уж вы его по всей странице хотите таскать.

Спустя 8 минут, 8 секунд (25.08.2011 - 14:09) Гость_bret написал(а):
Иерархически помещает его в тот же слой сам draggable
Как заставить его "удочериться" элементом body я не знаю sad.gif
(Вариант с ручным вырезанием и вставкой не нравится дополнительной необходимостью пересчёта координат мыши и положения клона)

Спустя 3 минуты, 44 секунды (25.08.2011 - 14:13) ApuktaChehov написал(а):
Еще один плюс, когда все делаешь сам. Ты бог своего кода. А используя фреймворки нет возможности выйти за границы их функционала. Ну разве что дописывать вручную.

С этой штукой я не работал и посоветовать нечего, так что извините. sad.gif


_____________
Бывает, ты ешь медведя, а бывает, что медведь ест тебя (с)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.