Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Как поместить элемент выше всех на странице


Автор: alex77 23.4.2007, 14:29
Здравствуйте.

Как поместить элемент страницы с position: absolute над всеми элементами страницы, (т.е. видимо надо присвоить ему наибольший z-index,) как это сделать? Как определить наибольший z-index на странице?

P.S. Я делаю страницу с перемещаемыми мышкой элементами. Надо чтобы тот, который перемещают, оказался наверху над всеми.

Автор: butionok 23.4.2007, 16:11
Вот так можно определить наибольший z-index элементов на странице

Код

var highestZindex=0;
if(document.body.childNodes(0))
    checkZindex(document.body.childNodes);

function checkZindex(nodes)
   {
   for(i=0;i<nodes.length;i++)
       {
       if(nodes(i).style.zIndex>highestZindex)
          highestZindex=nodes(i).style.zIndex;
       if(nodes(i).childNodes(0))
          checkZindex(nodes(i).childNodes)
        }
}

Автор: alex77 23.4.2007, 19:20
Это же все элементы страницы надо перебрать, медленно будет. А нет ли ещё другого способа?

Автор: butionok 23.4.2007, 22:56
Во-первых, не так уж медленно. Потом достаточно будет сделать это один раз и потом вести учёт изменений zIndex элементов с которыми надо производить действия.

Автор: lemax 10.12.2007, 22:40
 smile
Спешу открыть маленький секрет. Если мы представим HTML страницу как дерево, корень которого элемент BODY (самый верхний).
И у BODY есть дети (всякие HTML элементы типа SPAN,DIV,TABLE у которого сыны TR у которого сыны TD и тд и тп). И у этих детей есть еще дети... И вся эта цепочка заканчивается сыном (nodeText), у которого нет детей, но есть текст.

ТАК ВОТ:
Если есть элемент с zIndex="9999999999999999999999999999" (назовем его elem_ПЛЕМЯНИК).
И есть элемент с zIndex="минус 9999999999999999999999999999" который является родным братом отца "elem_ПЛЕМЯНИК"а  (назовем его elem_ДЯДЯ).

Если zIndex отца "elem_ПЛЕМЯНИК"а меньше, чем zIndex elem_ДЯДЯ, то elem_ДЯДЯ отображается всегда поверх elem_ПЛЕМЯНИК!!!!! (независимо от значения zIndex)  smile 
===================================================================

Выводы: Для того, чтобы наш элемент был 99,9% поверх всех элементов на странице. Он должен быть сыном Адама (BODY) и иметь большое значение zIndex (zIndex только для лидерства среди родных братьев).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)