Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.12.2013, 01:57
Новичок на форуме
Отправить личное сообщение для Voivod0 Посмотреть профиль Найти все сообщения от Voivod0
 
Регистрация: 04.12.2013
Сообщений: 8

Проблема со слоями css
Начну с самой проблемы и задачей которую необходимо реализовать. Пишу опросник, где каждый вопрос должен отображатся отдельно и иметь индивидуальный стиль, но не нашев ничего подходящего в инете решил написать сам. Но столкнулся с кучей проблем(опишу основную) Задача состоит в том, что есть несколько слоев допустим их 10 в начале у каждого из них z-index равен 1. Нужно чтобы с благодаря z-indexу слои пролистывались.
Это JS
var i;
var mas = [];
for (i =0;i=10;i++){
    mas[i]=i;
}
function on(){
    for (i = 0; i=10; i++ {
        if(mas[i]>mas[i+1]){
            var z = document.getElementById(i+1);
            z.style.zIndex = i+1;
        }else {
            var z = document.getElementById(mas['1']);
            z.style.zIndex = '1';
        }
        }
}

И html
<div id="3" class="box3">awdasdasd</div>
<div id="2" class="box2">sedsefe</div>
<div id="1" class="box">awdawd</div>
<br>
<div class="box0" style="margin: 100px;">
<a href="javascript:on();">Изменить z-index</a></div>

С радостью выслушаю другие варианты решения моей задачи либо замечайний к уже предложенному.
Ответить с цитированием
  #2 (permalink)  
Старый 04.12.2013, 02:34
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Voivod0
Нужно чтобы с благодаря z-indexу слои пролистывались.
Просто выставляй слою, который нужно отобразить больший индекс, чем изначальный. Нет необходимости менять индексы всем слоям.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 04.12.2013, 18:01
Новичок на форуме
Отправить личное сообщение для Voivod0 Посмотреть профиль Найти все сообщения от Voivod0
 
Регистрация: 04.12.2013
Сообщений: 8

Сообщение от danik.js Посмотреть сообщение
Просто выставляй слою, который нужно отобразить больший индекс, чем изначальный. Нет необходимости менять индексы всем слоям.
Еще раз повторюсь. Мне нужно чтобы скрипт по нажатию кнопки менял zindex на +1 следущего слоя. А вообще я просто попросил проверить мой код который по неизвестным мне причинам просто отказывается работать
Ответить с цитированием
  #4 (permalink)  
Старый 04.12.2013, 18:06
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Voivod0
Мне нужно чтобы скрипт по нажатию кнопки менял zindex на +1 следущего слоя.
Так почему тогда у тебя в коде какой-то цикл? Ты же сам говоришь - менять zindex следующего слоя, то есть одного, а не всех.
Для одного слоя не нужен цикл, ты что-то перемудрил в коде, вот он и не работает.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 04.12.2013, 23:20
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Voivod0, danik.js правильно вам говорит...
а по поводу вашего кода...цикл будет работать пока выполняется второе условие (в вашем случае i = 10), а как мы можем видеть на первой же итерации условие не выполняется...
Ответить с цитированием
  #6 (permalink)  
Старый 05.12.2013, 12:48
Аватар для rekzi
Аспирант
Отправить личное сообщение для rekzi Посмотреть профиль Найти все сообщения от rekzi
 
Регистрация: 28.08.2013
Сообщений: 78

А чем css display: block/none не угодил? z-index в IE чудит.
Ответить с цитированием
  #7 (permalink)  
Старый 09.12.2013, 19:07
Новичок на форуме
Отправить личное сообщение для Voivod0 Посмотреть профиль Найти все сообщения от Voivod0
 
Регистрация: 04.12.2013
Сообщений: 8

Всем спасибо) цикл действительно ненужен. Код вышел довольно простой но зато отлично работает.
var i=1;
function next(){
    ++i;
    var min = 1, max = 6;
    var rand = min - 0.5 + Math.random()*(max-min+1)
    rand = Math.round(rand);
    var z=document.getElementById(i);
    z.className="box-" +rand;
    z.style.zIndex=1+i;
    z=document.getElementById(i-1);
    z.style.opacity=0;
    
}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с меню на css wendstor (X)HTML/CSS 1 17.09.2012 23:00
Проблема с CSS GennadiyZm (X)HTML/CSS 4 21.02.2012 20:02
Проблема с поиском CSS парсера Solovei95 Общие вопросы Javascript 1 24.01.2012 05:49
Проблема с CSS deNSe_01 Events/DOM/Window 1 03.07.2011 14:37
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19