Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.02.2012, 17:41
Новичок на форуме
Отправить личное сообщение для Ultor Посмотреть профиль Найти все сообщения от Ultor
 
Регистрация: 24.01.2012
Сообщений: 9

увеличение z-index div слоёв при нажатии на них
Даны 2 слоя, у первого z-index 100 у второго 101. Надо чтобы при нажатии на первый слой z-index у него стал больше чем у второго, к примеру 102, то есть чтобы он делался поверх второго. Затем нажатием на второй он тоже увеличивал свой z-index, например 103, становясь поверх первого и так до бесконечности.
Вобщем что-то вроде onclick : z-index +2 нужно на каждый слой. Как это реализовать?

Последний раз редактировалось Ultor, 05.02.2012 в 17:43.
Ответить с цитированием
  #2 (permalink)  
Старый 05.02.2012, 19:27
Аватар для NoResponse
Профессор
Отправить личное сообщение для NoResponse Посмотреть профиль Найти все сообщения от NoResponse
 
Регистрация: 17.06.2010
Сообщений: 152

onclick="this.style.zInsex=this.style.zInsex+2"
Ответить с цитированием
  #3 (permalink)  
Старый 05.02.2012, 19:55
Профессор
Отправить личное сообщение для Nanto Посмотреть профиль Найти все сообщения от Nanto
 
Регистрация: 21.12.2010
Сообщений: 243

Сообщение от NoResponse Посмотреть сообщение
onclick="this.style.zInsex=this.style.zInsex+2"
И Вы будете бесконечно повышать z-index верхнего элемента!
Нужный элемент находится ПОД другим элемнтом.
To ТС: Кусок кода покажите.
Ответить с цитированием
  #4 (permalink)  
Старый 05.02.2012, 20:04
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,493

Вообще если элемента 2, то просто взаимозаменять их z-index, иначе:

<script> zindex = 102 </script>
<h1 style="position:relative;background:#eef;" onclick="style.zIndex = zindex++">1</h1>
<h1 style="position:relative;background:#fee;top:-1.2em" onclick="style.zIndex = zindex++">2</h1>
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 05.02.2012, 21:56
Новичок на форуме
Отправить личное сообщение для Ultor Посмотреть профиль Найти все сообщения от Ultor
 
Регистрация: 24.01.2012
Сообщений: 9

а если элементов больше чем 2? в моём случае их 5.. как бы сделать так, чтобы жмёшь на слой и он становился поверх всех, жмёшь на другой и он становился поверх всех..
может как-то можно сделать так, чтобы по клику на слой у него z-index прибавлялся, а у остальных слоёв при этом происходил возврат z-index к значению по-умолчанию? и так бы происходило у каждого слоя по которому кликаешь.
бесконечное прибавление z-index на практике оказалась не очень, так как если кликнуть допустим несколько раз, то и по другому надо кликать несколько раз и так как слоёв 5 штук, я не учёл, что для остальных слоёв, чтобы достич z-index предыдущих, надо будет кликать уже много раз, а не один, как было бы нужно..
цитировать кусок кода не вижу смысла, так как это не имеет значения, эта идея абсолютно отдельно идёт от других.

Последний раз редактировалось Ultor, 05.02.2012 в 22:00.
Ответить с цитированием
  #6 (permalink)  
Старый 06.02.2012, 03:31
Профессор
Отправить личное сообщение для Nanto Посмотреть профиль Найти все сообщения от Nanto
 
Регистрация: 21.12.2010
Сообщений: 243

Потому что непонятно - чего Вы хотите!
Слои полностью перекрывают друг-друга? Как же тогда определять по какому слою Вы собирались кликать? [telepate mode]?
Если слои не перекрываются полностью (т.е. можно отследить клик по конкретному слою) - тогда тут и думать нечего...
Ответить с цитированием
  #7 (permalink)  
Старый 06.02.2012, 05:09
Аватар для T-sh
Профессор
Отправить личное сообщение для T-sh Посмотреть профиль Найти все сообщения от T-sh
 
Регистрация: 04.12.2009
Сообщений: 579

слои как друг друга перекрывают? если полностью — на нижний просто невозможно кликнуть, а если частично:
var myelem = this.style.zIndex;
var allelem = getElementsByTagName('div').style.zIndex;
var leng = allelem.lenght;
while (leng--){
 if (myelem < allelem[leng]){
myelem.style.zIndex = allelem[leng]+2;
}
else { 
myelem.style.zIndex +=2 }
}


по синтаксису могу ошибаться, но логика такая
__________________
С моих слов записано верно.
Ответить с цитированием
  #8 (permalink)  
Старый 06.02.2012, 05:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от Ultor
а если элементов больше чем 2? в моём случае их 5.. как бы сделать так, чтобы жмёшь на слой и он становился поверх всех, жмёшь на другой и он становился поверх всех..
Предложенное решение Aetae, подходит для любого количества элементов
Ответить с цитированием
  #9 (permalink)  
Старый 06.02.2012, 17:19
Новичок на форуме
Отправить личное сообщение для Ultor Посмотреть профиль Найти все сообщения от Ultor
 
Регистрация: 24.01.2012
Сообщений: 9

да я наверное забыл сказать что все слои можно сворачивать и двигать, так что если они перекрывают друг друга, то можно слой отодвинуть и перекрывания не будет, вобщем задумка как в окнах ОС Windows. Не хватает только перемещения слоя на передний план при клике на него. чтож, попробую предложенные решения, потом скажу получилось или нет.
да вот код от Aetae вроде работает немного поменял значения и получилось, спасибо большое
всем + за внимание

Последний раз редактировалось Ultor, 06.02.2012 в 17:47.
Ответить с цитированием
  #10 (permalink)  
Старый 06.02.2012, 19:30
Новичок на форуме
Отправить личное сообщение для Ultor Посмотреть профиль Найти все сообщения от Ultor
 
Регистрация: 24.01.2012
Сообщений: 9

и я ещё добавил onmousedown="style.zIndex = zindex++" так работает корректней)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
увеличение картинки при нажатии alex964 Элементы интерфейса 1 13.03.2011 21:54
Закрытие прозрачного div при щелчке мыши в любой его области mav1 Элементы интерфейса 8 09.02.2011 19:25
при нажатии на картинку(типа кнопки) скрывать и показывать DIV Russianmaniac Элементы интерфейса 4 28.11.2010 00:47
Подгрузка контента в определённый DIV при нажатии на ссылку, без перезагрузки страниц Flashton Events/DOM/Window 0 10.03.2010 19:53
смена div при нажатии на ссылку bars Элементы интерфейса 11 23.10.2009 12:45