 
			
				08.01.2015, 19:33
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.04.2012 
					
					
					
						Сообщений: 3,018
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Система всплывающих сообщений
			 
			
		
		
		
		В общем, решил сделать вот такую систему всплывающих сообщений-подсказок. Надеюсь, кому-нибудь пригодится.   
Версия 2.0
Работает в IE7+
 В IE7-8 не отображается тень и круглые углы 
В IE7-9 не работают эффекты анимации
Подключение:
Для подключения необходимо подключить в head (не обязательно в head, но лучше в head) вашего документа *js и *css файлы:
 
<link href="Message-2.0.css" rel="stylesheet" type="text/css">
<script src="Message-2.0.js" type="text/javascript"></script>
 
Все файлы Вы сможете найти в архиве, который прикреплён ниже.
 Настройка:
В *js файле Вы можете найти в самом начале следующие переменные:
 
var DELAY = 5000, //длительность отображения сообщения, 1000 = 1 секунда. По умолчанию 5000 (5 секунды).
	ICON = '', //иконка, которая будет устанавливаться по умолчанию, если не передан параметр «icon».
	ICON_DIR = '', //директория к папке с иконками, например: '/desing/icons/'. Это позволит сократить Ваш код и не прописывать каждый раз полную директорию к файлу иконки.
	ICON_FORMAT = ''; //формат иконок, например: 'png'. Это позволит сократить Ваш код и не прописывать к каждой иконке формат
 
Рекомендуется хранить все иконки в одной папке и в одном формате (например *png), и указать эти данные в переменные ICON_DIR и ICON_FORMAT. Благодаря этому, вместо пути к иконке можно будет просто указывать имя файла нужной иконки - это позволит очень даже облегчить написание кода, а также снизит его объём.   
Документация:Для создания всплывающего окна используется следующий класс (красным помечены обязательные параметры): 
Message(title, text, icon)• title[String] — заголовок сообщения (см. подробное описание ниже). 
• text[String] — текст сообщения. 
• icon[String] — путь к иконке, графическому изображению (см. подробное описание ниже). 
 
Свойства:• color[String] — цвет текста сообщения. 
• delay[Number] — длительность отображения сообщения (1000 = 1 секунда). По умолчанию используется значение константы DELAY, но если она не указана, то - 5000 (5 секунд). 
• icon[String] — путь к иконке, графическому изображению. Рекомендуется использовать *png изображения с размером 64x64. По умолчанию используется значение константы ICON. Также свойство работает совместно с константами ICON_DIR и ICON_FORMAT, однако если указать путь с http(s) или /, то значения констант не будет использоваться - всё это позволит с лёгкостью указывать путь не только к уникальной папке с иконками, но и использовать альтернативные пути. 
• text[String] — текст сообщения. 
• title[String] — заголовок сообщения. Заголовок не должен быть слишком большим по количеству символов, старайтесь его описать как можно короче, например: «Ошибка», «Успех», «Совет», «Предупреждение» и т.д. 
• visible[Boolean] (только для чтения) — если true - значит сообщение находится на экране в видимом состоянии, если false - значит сообщение не отображено. Методы:• hide(onhide = null) — скрывает сообщение с экрана, если оно видимо.• onhide[Function] — дополнительное событие, которое сработает после исчезновения сообщения. Этот параметр не обязателен. • remove(forcibly = false) — удаляет сообщение с экрана и из памяти.• forcibly[Boolean] — если параметр указан в виде истинного значения, то сообщение мгновенно будет удалено с экрана без эффекта плавного исчезновения. • show(newText = Message.text, remove = false, forcibly = false) — выводит сообщение на экран.• newText[String] — новый текст сообщения. По умолчанию берётся текст, переданный в экземпляр класса Message. 
• remove[Boolean] — если параметр указан в виде истинного значения, то сообщение будет удалено из памяти после его исчезновения с экрана. 
• forcibly[Boolean] — если параметр указан в виде истинного значения и данное сообщение уже находится в видимом состоянии, то оно будет принудительно скрыто и отобразится заново. 
 • toggle(show) — выводит/удаляет сообщение в зависимости от его видимости и параметра show. Если параметр show не указан, то сообщение будет скрыто если оно видимо, и наоборот.• show[Boolean] — если true, то сообщение будет показано (аналогично методу show), если false - сообщение будет скрыто (аналогично методу hide).  События:• onclick[Function] — событие вызываемое по клику на сообщение. Если функция вернёт false, то сообщение по клику скрыто не будет. 
• onhide[Function] — событие вызываемое после исчезновения сообщения с экрана.  Свойства и методы основного объекта Message:• Свойства• Message.lastItem — ссылка на последний созданный экземпляр Message. 
• Message.items — массив со всеми созданными экземплярами Message. 
• Message.visibleLength (только для чтения) — количество видимых сообщений на экране.  • Методы• Message.each(callback[Function]) — вызовет callback для каждого экземпляра Message. В callback будет передано два аргумента: item (экземпляр Message), index (индекс экземпляра Message). 
• Message.hideAll() — скроет все видимые сообщения. 
• Message.removeAll(forcibly[Boolean]) — удалит все сообщения из памяти, предварительно скрыв видимые сообщения. Если параметр forcibly указан в виде истинного значения, то все видимые сообщения будут мгновенно скрыты без эффекта плавного исчезновения. 
• Message.showAll(stepTime[Number]) — отобразит все скрытые сообщения. Если параметр stepTime указан в виде числа, то сообщения будут показываться по очереди с интервалом stepTime (1000 = 1 секунда).   
Примеры использования:
//Создаём сообщение
var msg = new Message('Заголовок', 'Текст');
//Устанавливаем нужные параметры
msg.delay = 3000; //3 секунды
msg.icon = '/files/icons/myIcon.png';
//Вешаем события
msg.onclick = function() {
    alert('Вы кликнули по всплывающему сообщению!');
}
msg.onhide = function() {
    alert('Сообщение исчезло!');
}
//Выводим сообщение на экран
msg.show();
//Создаём одноразовое сообщение и сразу выводим его, после исчезновения сообщение будет удалено из памяти
new Message('Приветствие', 'Всем привет!', '/icons/hello.png').show(null, true);
Живые примеры:
http://learn.javascript.ru/play/blUGbb
Скачать:
Message-2.0.zip 
		
	
		
		
			
			
			
		
			
			
			
			
			
			
			
			
			 
		
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось ruslan_mart, 14.01.2015 в 14:54.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				08.01.2015, 19:43
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 23.12.2013 
					
					
					
						Сообщений: 1,856
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		А можно лучше пример на jsfiddle, а то сам знаешь что с learn.javascript.ru   
Я ради забавы недавно тоже написал уведомлялку, хотелось бы сравнить)  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				08.01.2015, 19:49
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.04.2012 
					
					
					
						Сообщений: 3,018
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Safort, добавил ссылку на jsfiddle.net    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				08.01.2015, 19:51
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 23.12.2013 
					
					
					
						Сообщений: 1,856
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Ruslan_xDD, 
 я уже скачал и у себя запустил)  
Скажем так, плеер у тебя лучше выглядел    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				08.01.2015, 19:54
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Ruslan_xDD, 
 font-size: 9pt; в ie невлазит 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				08.01.2015, 19:55
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.04.2012 
					
					
					
						Сообщений: 3,018
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Safort, на белом фоне не очень смотрится.    Если фон подогнать на весь документ, то вполне нормально должно смотреться, так как сами "сообщения" немного прозрачные. Но в любом случае, стили можно под себя подправить. Позже ещё сделаю тёмную версию.   
рони, спасибо, поправим, не тестил просто в IE.    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				08.01.2015, 20:07
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.04.2012 
					
					
					
						Сообщений: 3,018
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 рони, протестировал на IE9-11, всё нормально работает. Можешь скрин сделать? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				08.01.2015, 20:24
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.04.2012 
					
					
					
						Сообщений: 3,018
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 UPD: немного изменил стили, думаю теперь лучше смотрится. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				08.01.2015, 20:24
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Ruslan_xDD,
    может быть это только у меня так  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				08.01.2015, 20:28
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.04.2012 
					
					
					
						Сообщений: 3,018
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		рони, ну ничего себе у тебя в IE шрифт большой, спасибо.    Есть какие-нибудь идеи по этому поводу? Может в самом font-family проблемы?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |