Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: поиск элемента за пределами контейнера
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » поиск элемента за пределами контейнера

Страниц (1): [1]
 

1. armancho7777777 - 04 Апреля, 2012 - 09:52:54 - перейти к сообщению
Всем привет!
Как получить первые элементы которые находятся за пределами правой и левой границами определённого контейнера,
у которого css свойство overflow == hidden, и на сколько они находятся внутри контейнера, чтобы знать на сколько прокрутить слайдер.
Вот скриншот:
2. Zuldek - 04 Апреля, 2012 - 10:10:07 - перейти к сообщению
складывать длину вложенных блоков внутри контейнера, когда длинна > брать id текущего блока получите правый, левый на 1 меньше первого.
3. armancho7777777 - 04 Апреля, 2012 - 10:16:18 - перейти к сообщению
Zuldek пишет:
складывать длину вложенных блоков внутри контейнера, когда длинна >

Так не выйдет.
За пределами левой границы может быть элементов сколько угодно, ну, короче, больше одного.
И возможно при складывании их размеров сумма сложения может превысить ширину контейнера не дойдя до левой границы.
4. Zuldek - 04 Апреля, 2012 - 10:38:45 - перейти к сообщению
Тогда использовать координаты. Вас будет интересовать параметр offsetLeft(Right) вложенных блоков. У нужных, эти параметры будут минимальны (/максимальны, в зависимости от того, с какой стороны ищите). Например, в массиве элементов ищите с минимальным offsetLeft относительно родительского (на правах пророка, - большого блока на скриншоте). Это и будет искомый "левый" элемент.
http://javascript[dot]ru/ui/offset
5. armancho7777777 - 04 Апреля, 2012 - 10:41:36 - перейти к сообщению
Zuldek пишет:
Тогда использовать координаты

Сам знаю.
Это не ответ.
6. Zuldek - 04 Апреля, 2012 - 10:42:24 - перейти к сообщению
armancho7777777 пишет:
Zuldek пишет:
Тогда использовать координаты

Сам знаю.
Это не ответ.

ответил выше.
7. armancho7777777 - 04 Апреля, 2012 - 11:01:32 - перейти к сообщению
Zuldek пишет:
Тогда использовать координаты. Вас будет интересовать параметр offsetLeft(Right) вложенных блоков. У нужных, эти параметры будут минимальны (/максимальны, в зависимости от того, с какой стороны ищите). Например, в массиве элементов ищите с минимальным offsetLeft относительно родительского (на правах пророка, - большого блока на скриншоте). Это и будет искомый "левый" элемент.
http://javascript[dot]ru/ui/offset

Уже так и сделал))
Все равно спасибо))
8. IllusionMH - 04 Апреля, 2012 - 16:27:56 - перейти к сообщению
armancho7777777, соседей активного элемента легко получить используя свойства элемента .previousSibling и .nextSibling.
Важно проверить свойство nodeType соседа, т.к. в большинстве случаев это может быть [object Text], и взять следующего соседа (.nextSibling.nextSibling тут будет либо null для первого/последнего элемента, либо соседний элемент).
Дальше просто получить offsetLeft как писалось выше
9. armancho7777777 - 05 Апреля, 2012 - 05:06:37 - перейти к сообщению
Спасибо IllusionMH !)

 

Powered by ExBB FM 1.0 RC1