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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: поиск элемента за пределами контейнера

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
armancho7777777 Супермодератор
Отправлено: 04 Апреля, 2012 - 09:52:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Всем привет!
Как получить первые элементы которые находятся за пределами правой и левой границами определённого контейнера,
у которого css свойство overflow == hidden, и на сколько они находятся внутри контейнера, чтобы знать на сколько прокрутить слайдер.
Вот скриншот:
Прикреплено изображение (Нажмите для увеличения)
scrin.jpg

(Отредактировано автором: 04 Апреля, 2012 - 10:08:39)

 
 Top
Zuldek
Отправлено: 04 Апреля, 2012 - 10:10:07
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




складывать длину вложенных блоков внутри контейнера, когда длинна > брать id текущего блока получите правый, левый на 1 меньше первого.

(Отредактировано автором: 04 Апреля, 2012 - 10:10:46)

 
 Top
armancho7777777 Супермодератор
Отправлено: 04 Апреля, 2012 - 10:16:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Zuldek пишет:
складывать длину вложенных блоков внутри контейнера, когда длинна >

Так не выйдет.
За пределами левой границы может быть элементов сколько угодно, ну, короче, больше одного.
И возможно при складывании их размеров сумма сложения может превысить ширину контейнера не дойдя до левой границы.

(Отредактировано автором: 04 Апреля, 2012 - 10:18:38)

 
 Top
Zuldek
Отправлено: 04 Апреля, 2012 - 10:38:45
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




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

(Отредактировано автором: 04 Апреля, 2012 - 10:46:13)

 
 Top
armancho7777777 Супермодератор
Отправлено: 04 Апреля, 2012 - 10:41:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Zuldek пишет:
Тогда использовать координаты

Сам знаю.
Это не ответ.
 
 Top
Zuldek
Отправлено: 04 Апреля, 2012 - 10:42:24
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




armancho7777777 пишет:
Zuldek пишет:
Тогда использовать координаты

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

ответил выше.
 
 Top
armancho7777777 Супермодератор
Отправлено: 04 Апреля, 2012 - 11:01:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




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

Уже так и сделал))
Все равно спасибо))

(Отредактировано автором: 04 Апреля, 2012 - 11:02:55)

 
 Top
IllusionMH
Отправлено: 04 Апреля, 2012 - 16:27:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




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



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Спасибо IllusionMH !)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB