Stikr - плагин для создания всплывающих сообщений на jQuery

Идея плагина совершенно проста – он выводит сообщения (или стикеры) в любом углу экрана. Это может быть как сообщение, которое будет висеть определённое количество секунд и после этого исчезнет, так и сообщение, которое будет скрыто только после того, как вы нажмёте кнопку закрытия.

Перёйдем непосредственно к плагину.

Сначала рассмотрим параметры, которые может принимать плагин:

time (по умолчанию 5000) - количество миллисекунд, которое отображается сообщение.
speed (по умолчанию slow) - количество мс, за которое исчезает изображение, либо текстовый параметр (‘normal’, ‘slow’ или ‘fast’).
note - текст сообщения.
className - название класса, который будет добавлен к сообщению.
sticked (по умолчанию false) с параметром true закрепляет сообщение до тех пор, пока оно не будет закрыто кликом по кнопке. По умолчанию этот параметр отключен.
position – массив, содержащий позиции сообщений. По умолчанию сообщения выводятся справа сверху.

Примеры

Теперь перейдём к примерам.

Нажми
$.stickr({note:'Самый простой стикер с настройками по умолчанию.',className:'classic'});

Нажми
$.stickr({note:'Это ошибка.<br />Чтобы привлечь ваше внимание, она будет оставаться на месте до тех пор, пока вы не закроете её',className:'classic error',sticked:true});

Нажми
$.stickr({note:'Проба полупрозрачных изображений',className:'opacity',position:{left:0,top:0}});

Нажми
$.stickr({note:'Успей прочитать моё содержимое!',className:'next',position:{right:0,bottom:0},time:1000,speed:300});

Нажми
$.stickr({note:'Самый последний из тестовых стикеров. Исчезает очень ме-е-едленно.',className:'last',time:1000,speed:3000});


Код плагина

Рассмотрим подробнее код:
$.stickr = function(o) {
	var o = $.extend({   // настройки по умолчанию
		time:5000, // количество мс, которое отображается сообщение
		speed:'slow', // скорость исчезания
		note:null, // текст сообщения
		className:null, // класс, добавляемый к сообщению
		sticked:false, // не выводить кнопку закрытия сообщения
		position:{top:0,right:0} // позиция по умолчанию - справа сверху
	}, o);
	var stickers = $('#jquery-stickers'); // начинаем работу с главным элементом
	if (!stickers.length) { // если его ещё не существует
		$('body').prepend('<div id="jquery-stickers"></div>'); // добавляем его
		var stickers = $('#jquery-stickers');
		stickers.css('position','fixed').css(o.position); // позиционируем
	}
	var stick = $('<div class="stick"></div>'); // создаём стикер
	stickers.append(stick); // добавляем его к родительскому элементу
	if (o.className) stick.addClass(o.className); // если необходимо, добавляем класс
        stick.html(o.note); // вставляем сообщение
	if (o.sticked) { // если сообщение закреплено
		var exit = $('<div class="exit"></div>');  // создаём кнопку выхода
		stick.prepend(exit); // вставляем её перед сообщением
		exit.click(function(){  // при клике
			stick.fadeOut(o.speed,function(){ // скрываем стикер
				$(this).remove(); // по окончании анимации удаляем его
			})
		});
	} else { // если же нет
		setTimeout(function(){ // устанавливаем таймер на необходимое время
			stick.fadeOut(o.speed,function(){ // затем скрываем стикер
				$(this).remove(); // по окончании анимации удаляем его
			});
		}, o.time);
	}
};

Браузеры, поддерживающие сиё творение

  • IE 7+
  • Opera 4+
  • Firefox 1+
  • Safari 1+
  • Chrome
Данные по браузерам базируются на сведениях о поддержке свойства position:fixed.



P. S. Изначально это был один из первых плагинов для jQuery, написанных мною. Первая версия плагина датируется 19 сентября 2008 года (разумеется, с того времени он неоднократно перерабатывался). Более ранним был только плагин автозаполнения, о котором я расскажу в следующей статье.


Комментарии

10 августа 2010, 13:07 (Ответить)
Клас! Просто, а потому гибко. Осталось только наборы стилей нагнать разные. Это Ваш плагин? напишите мне на почту, пожалуйста. Я бы хотел написать статью о нем.
11 августа 2010, 11:40 (Ответить)
Спасибо. Ответила на e-mail.
21 декабря 2010, 14:34 (Ответить)
как его подключить-то? как сделать чтобы по нажатию кнопки срабатывал?
24 февраля 2011, 14:25 (Ответить)
Код плагина - это конечно хорошо, но раз уж решил поделиться, то выкладывай для удобства архив вместе с CSS и картинками. То бишь полный комплект. А так, молодец - компактно сделал.
24 февраля 2011, 18:26 (Ответить)
Игорь, выложу в ближайшее время.
Одно "но": "решила" и "сделала". Я женского пола :)
8 марта 2011, 8:55 (Ответить)
Спасибо за плагин. Просто и со вкусом. Уже использую.
Единственно сложно выдергивать код из этой странички, чтобы настроить плагин.
11 марта 2011, 14:28 (Ответить)
Спасибо за классный плагин, Нина!
Очень понравились компактность и универсальность решения.
По коду:
имхо, лучше для создания элементов использовать «jQuery(html, props)» из jquery1.4 - см. пример: jsfiddle.net/X4ceY/
Ещёесть красивый плагин для mootools - "Window.Growl":icebeat.bitacoras.com/mootools/growl/
Там "стикеры" умеют всплывать по центру: высчитывается ширина/высота позиционирования, беря в расчёт положение скролинга.
... Возможно, вам будет интересно взглянуть )

PS почитал страницу "Об авторе" - мега респект! *_*
Продолжайте в том же духе, не сбавляйте оборотов ;)
23 марта 2011, 19:06 (Ответить)
Спасибо, о функции из jQuery 1.4 не знала.
Постараюсь и дальше в том же духе :)
15 марта 2011, 13:27 (Ответить)
IE не поддерживается! Любая версия.
23 марта 2011, 19:00 (Ответить)
Я проверяла эту страницу в 4 версиях IE - с 6 по 9. Во всех плагин работает идеально.
Так что если у вас что-то не поддерживается - это уже ваша проблема.
31 марта 2011, 18:56 (Ответить)
Заработало после применения условных комментариев и работой над css фалом
24 марта 2011, 3:44 (Ответить)
На сайте последний материал датирован октябрем прошлого года. Неужели за это время не произошло ничего нового, интересного? =)
24 марта 2011, 9:16 (Ответить)
ИгорьД, нового и интересного произошла целая куча, просто у меня нет времени об этом писать :)
24 марта 2011, 15:10 (Ответить)
жалко =(

напишите, как вы относитесь к HTML5 например =)
24 марта 2011, 15:21 (Ответить)
Вкратце: положительно.
А для того чтобы расписать каждый аспект моего отношения понадобится не одна статья :)
30 мая 2011, 9:45 (Ответить)
Молодец. Хорошая работа.
12 июня 2011, 0:47 (Ответить)
Прекрасно! Это то что нужно! Туча благодарностей =)
19 июня 2011, 20:48 (Ответить)
ruseller.com/adds/adds2106/example/вот - классный пример и плагин подсказок :)
28 июля 2011, 12:15 (Ответить)
спасибо, интересная штука!
23 августа 2011, 15:40 (Ответить)
идеально, а главное просто!)
24 августа 2011, 10:55 (Ответить)
Очень хорошо, только лучше бы выложили целым архивом.
23 сентября 2011, 0:39 (Ответить)
Отлично, спасибо за урок!
13 ноября 2011, 8:22 (Ответить)
Вопрос к знатокам как можно зделать неподвижный банер с кнопкай закрытия с поевлением с низу может программы есть такие имено для создания не подвижного банира с кнопкой закрыть? Што-то на подобие как в этом сайте www.2baksa.net/news/31414чтоб банир выежал с низу в углу с задержкой времени на поевления, если кто знает ответ то напишите на маю почту ynii@list.ru
15 февраля, 8:11 (Ответить)
Привет! Спасибо за плагин! Обязательно буду использовать у себя на сайте.

Добавить комментарий