Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Сниппеты » JS Сниппеты » Добавляем событие при бездействии пользователя на сайте

Добавляем событие при бездействии пользователя на сайте


     31.05.2013    сниппет, jquery, события    JS Сниппеты    11695

Видели всякие всплывающие сообщения при бездействии на каком нибудь сайте?
Такое довольно легко реализовать средствами jQuery:
idleTimer = null;
idleState = false;
idleWait = 2000; // задаём время ожидания бездействия

(function ($) {
    $(document).ready(function () {
        $('*').bind('mousemove keydown scroll', function () {
            clearTimeout(idleTimer);
            if (idleState == true) {

                // Что делаем, когда пользователь активировался
                $("body").append("<p>С возвращением дружище!.</p>");
                // Что делаем, когда пользователь активировался

            }

            idleState = false;
            idleTimer = setTimeout(function () {

                // Что делаем при бездействии юзера больше указанного времени
                $("body").append("<p>Уже " + idleWait / 1000 + " сек. отдыхаешь! Хватит халявить!</p>");
                // Что делаем при бездействии юзера больше указанного времени

                idleState = true;
            }, idleWait);
        });

        // Инициализация
        $("body").trigger("mousemove");

    });
})(jQuery)
Демо

5 комментариев

Texty
Юзер

Texty - 6 июня 2013 23:41 -

Блин, Паша, молодец. Интересные сниппеты, халявные модули. Сразу видно, доброй души человек старается ;)

dj-avtosh
PHP-developer

dj-avtosh - 7 июня 2013 02:37 -

Такое можно повесить и онлайн статус передавать. Удобно. Сильно Грузит браузер?

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

ПафНутиЙ
Админ

ПафНутиЙ - 7 июня 2013 08:39 -

Texty,
Есть немного))
dj-avtosh,
а надо? smile

Каков вопрос - таков и ответ. Просто помните об этом.

Nagibaka
Эксперт

Nagibaka - 4 июля 2013 17:30 -


$('*').bind('mousemove keydown scroll', function () {

За звездочку ата-та, можно просто $( 'body' ) написать. ;)

Frontend MotherFucker=:^^

TheImDim
Юзер

TheImDim - 4 июля 2013 18:10 -

а еще лучше кэшировать селекторы, например:

var _body = $("body");

Чтобы комментировать - войдите или зарегистрируйтесь на сайте
наверх