С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 13.03.2011
Сообщений: 17

Создание новых всплывающих окон

21.03.2014, 16:16. Показов 791. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос таков- необходимо реализовать вывод на экран новых окон с сообщениями (по типу того как в vk.com) по нажатию на кнопку.
Подскажите хотя бы логику - нужны ли клепать новые классы или же можно обойтись одним?

по заданию это окно через N-ое кол-во времени исчезает либо - его можно зафиксировать (Это я уже сделал)

прикладываю мой текущий код

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
var text;
function go(){
    text=window.document.getElementById("my-text").value;
    window.document.getElementById("my-text").value="";
    if (text!="") {goWindow();}
    else {alert("Выничего не ввели!")}
 
}
function goWindow(){
    $('.panel').append('<h1>'+text+'</h1>');
    $('.panel').fadeIn('slow');
    var myTimer;
    var n = 6000; //Количество секунд пока висит окно
    myTimer = setTimeout(function(){$('.panel').fadeOut('slow');},n);  //исчезание через N секунд
 
    $(".panel .close").click(function(){
        $(this).parents(".panel").animate({ opacity: 'hide' }, "slow");
        clearTimeout(myTimer);
    });
 
    $(".panel .lock").click(function(){
        clearTimeout(myTimer);
        $(".panel .timer").animate({ opacity: 'hide' }, "fast");
        $(".panel .lock").css({
            'background-image':'url("lock_on.png")'
        })
    });        //заменяет картинку & останавливает таймер & прячет счетчик после нажатия
 
    function countdown() {
        var currentsecond=n/1000+1;
        function countredirect(){       //счиитает в обратном порядке и выводит на экран
            if (currentsecond!=1){
                currentsecond-=1;
                $(".panel .timer").val(currentsecond);
            }
            else{
                $(".panel .timer").val(0)
                return;
            }
            setTimeout(countredirect,1000);
        }
        countredirect() //перезапускает сама себя для отсчета секунд
    }   // ТАЙМЕР
    countdown();
    }
Добавлено через 4 часа 51 минуту
Все - разобрался! Если кому интересно приложил свой код.

Кликните здесь для просмотра всего текста

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Dunice Study. Task 4</title>
  <link rel="stylesheet" type="text/css" href="style.css" />
  <script type="text/javascript" src="jquery-1.11.0.min.js"></script>
  <script type="text/javascript" src="script.js"></script>
</head>
<body>
 
    <div id="wrap">
        <input id="my-text" type="text" autofocus />
        <button class="go">Do it!</button>
    </div>
 
<!-- ############ Закрывающиеся блоки ##### -->
    <div class="popup">
        <script type="text/template">
 
        </script>
    </div>
<!-- ###################################### -->
 
</body>
</html>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
jQuery(function (){
 
    var text;
 
    console.log('Ready');
 
    $('#my-text').on('keyup', function(e) {
        if (e.which === 13) {
            e.preventDefault();
            enter();
        }
    });
 
 
    function enter() {
        text = $("#my-text").val();
        $("#my-text").val('');
        if (text!="") {goWindow();}
        else {alert("Выничего не ввели!")}
    }
    $(".go").on("click", enter);
 
 
    function onPanelClick(callback) {
        return function() {
            var panel = $(this).parent(".panel");
            clearTimeout(panel.data("timer"));
            callback.call(this, panel);
        }
    }
 
    $(".popup")
        .on("click", ".panel .close", onPanelClick(function(panel) {
            panel.animate({ opacity: 'hide' }, "slow");
            $(".popup")[0].removeChild(panel[0]);
        }))
        .on("click", ".panel .lock", onPanelClick(function(panel) {
            panel.find(".timer").animate({ opacity: 'hide' }, "fast");
            $(this).css({'background-image':'url("lock_on.png")'});
        }));
 
 
    function goWindow() {
        var template = '<div class="panel" style="display: block">'+
            '<span class="close"></span>'+
            '<span class="lock"></span>'+
            '<input class="timer" type="text" readonly>'+
            '</div>';
        // Append template
 
        $(".popup").append(template);
        var id = new Date().getTime();
        $(".popup .panel:last").attr("id", id);                 //присваеваем каждому нового блоку id
        $('.popup .panel#'+id).append('<h1>'+text+'</h1>');     //вставляем текст
        $('.popup .panel#'+id).fadeIn('slow');                  //выводвим окно
        var n = 10000;                                          //Количество милисекунд пока висит окно
        var myTimer = setTimeout(function(){
            $('.popup .panel#'+id).fadeOut('slow');
            $('.popup .panel#'+id).remove();
 
        },n);  //исчезание через N секунд
        $('.popup .panel#'+id).data("timer", myTimer);
 
        function countdown() {
            var currentsecond=n/1000+1;
            function countredirect(){       //счиитает в обратном порядке и выводит на экран
                if (currentsecond!=1){
                    currentsecond-=1;
                    $('.popup .panel#'+id).find(".timer").val(currentsecond);
                }
                else{
                    $('.popup .panel#'+id).find(".timer").val(0)
                    return;
                }
                setTimeout(countredirect,1000);
            }
            countredirect(); //перезапускает сама себя для отсчета секунд
        }   // ТАЙМЕР
        countdown();
    };
 
});
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.03.2014, 16:16
Ответы с готовыми решениями:

Создание всплывающих картинок
Здравствуйте, подскажите пожалуйста, люди добрые, хочу сделать для сайта такую фишку: пока пользователь на сайте, в определенное время...

Проверка на разрешение всплывающих окон
Сабж. Тоесть нужен способ проверки разрешения всплывающих окон в IE, просто со вторым сервис паком это стало актуально. Способ пробой...

Несколько всплывающих окон на странице
всем привет. есть подобное всплывающее окно. когда оно одно на странице - работает идеально. как только пытаюсь добавить второе -...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.03.2014, 16:16
Помогаю со студенческими работами здесь

Как отменить блокировку всплывающих окон?
Здравствуйте. Не думал, что это будет проблематично, но при получении определенного ответа от сервера, с помощью AJAX, я перенаправляю...

Форма авторизации в виде всплывающих окон "prompt"
У меня есть задание, сделать условную форму авторизации. (ввести заданные логин и пароль) Я выполнил все условия, кроме одного и...

Не работает код открытия новых окон браузера
Не могу понять где ошибка. Должно открыться 9 окон размером 200x100 по нажатию на Открытие. Но либо ничего не открывается, либо одно...

Awesomium запретить создание новых окон
Есть сайт который через определенный промежуток времени через js открывает новое окно, мне надо либо заблокировать переход на сайт с...

Блокировка всплывающих окон???
Господа!!! Помогите!!! Нигде не могу найти как самостоятельно написать утилитку для блокировки всплывающих окон в Internet Explorer. Кругом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru