Всем привет!
Как получить первые элементы которые находятся за пределами правой и левой границами определённого контейнера,
у которого css свойство overflow == hidden, и на сколько они находятся внутри контейнера, чтобы знать на сколько прокрутить слайдер.
Вот скриншот:
1. armancho7777777 - 04 Апреля, 2012 - 09:52:54 - перейти к сообщению
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
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
http://javascript[dot]ru/ui/offset
Уже так и сделал))
Все равно спасибо))
8. IllusionMH - 04 Апреля, 2012 - 16:27:56 - перейти к сообщению
armancho7777777, соседей активного элемента легко получить используя свойства элемента .previousSibling и .nextSibling.
Важно проверить свойство nodeType соседа, т.к. в большинстве случаев это может быть [object Text], и взять следующего соседа (.nextSibling.nextSibling тут будет либо null для первого/последнего элемента, либо соседний элемент).
Дальше просто получить offsetLeft как писалось выше
Важно проверить свойство nodeType соседа, т.к. в большинстве случаев это может быть [object Text], и взять следующего соседа (.nextSibling.nextSibling тут будет либо null для первого/последнего элемента, либо соседний элемент).
Дальше просто получить offsetLeft как писалось выше
9. armancho7777777 - 05 Апреля, 2012 - 05:06:37 - перейти к сообщению
Спасибо IllusionMH !)