За последние 24 часа нас посетил 21451 программист и 1698 роботов. Сейчас ищут 1895 программистов ...

Проблема с небольшой фичей :)

Тема в разделе "JavaScript и AJAX", создана пользователем Elkaz, 16 мар 2008.

  1. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Всем привет.
    Вообщем, возникла потребность немного поизвращаться над пользователем средствами JS. Т.к знаю я его не так хорошо, как хотелось бы - расписываю задачу.
    Нужно, что бы при нажатии на кнопку/ссылку/объект, сверху налагался маленьий слой с размером 200х200. А главное окно в это время становится неактивным. Внутри слоя должен быть таймер (N секунд, по истечению которых элемент исчезает, а главное окно становится активным) и кнопка "Закрыть", при нажатии, главное окно активируется, а этот элемент исчезает (сразу).
    Буду благодарен за код :roll:
    Спасибо.
     
  2. +Sten+

    +Sten+ Активный пользователь

    С нами с:
    27 авг 2007
    Сообщения:
    978
    Симпатии:
    0
    [js]var content;
    function showall() {
    document.body.innerHTML = content
    }
    function hideall() {
    var div = document.createElement('div');
    div.style.position = 'absolute';
    div.style.left = '200px';
    div.style.top = '200px';
    div.style.width = '200px';
    div.style.height = '200px';
    div.style.left = '200px';
    div.style.bgcolor = '#FF0000';
    div.style.border = '1px solid #006600';
    div.innerHTML = 'Текст слоя. <hr /><button onclick="showall()">Закрыть</button>';
    content = document.body.innerHTML;
    document.body.innerHTML = '';
    document.body.appendChild(div);
    setTimeout('showall()', 5000);
    }[/js]

    hideall() - скрывает содержимое страницы и показывает див 200Х200 на 5 секунд.
    showall() - восстанавливает контент страницы (вешается на кнопку "закрыть").

    Или без DOM :
    [js]
    var content;
    function showall() {
    document.body.innerHTML = content
    }
    function hideall() {
    content = document.body.innerHTML;
    document.body.innerHTML = '<div style="position:absolute; left:200px; top:200px; width:200px; height:200px; z-index:1; border: 1px solid #006600;">Текст слоя. <hr /><button onclick="showall()">Закрыть</button></div>';
    setTimeout('showall()', 5000);
    }
    [/js]
    Некрасиво только как-то :)
     
  3. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    +Sten+
    Спасибо, как раз то, что надо.
    Если не трудно - что бы таймер еще время показывал.
    Осталось еще N секунд до закрытия окна :)
     
  4. +Sten+

    +Sten+ Активный пользователь

    С нами с:
    27 авг 2007
    Сообщения:
    978
    Симпатии:
    0
    Elkaz
    Ничего, кроме обыкновенного таймера (цикл с пятью интерациями с setTimeout(x, 1000) или просто setInterval(x, 1000) ) на ум не приходит.