Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.12.2015, 21:41
Аватар для light
Аспирант
Отправить личное сообщение для light Посмотреть профиль Найти все сообщения от light
 
Регистрация: 11.04.2014
Сообщений: 60

Остановить снег
Добрый день. Подскажите пожалуйста, как можно остановить снег в скрипте, например через 10 секунд.

Сам скрипт
http://falbar.ru/article/id/67

Есть функция durationMillis, но она не срабатывает =(

Сам скрипт довольно небольшой, но как его остановить я не могу разобраться

/**
 * jquery.snow - jQuery Snow Effect Plugin
 *
 * Available under MIT licence
 *
 * @version 1 (21. Jan 2012)
 * @author Ivan Lazarevic
 * @requires jQuery
 * @see [url]http://workshop.rs[/url]
 *
 * @params flakeChar - the HTML char to animate
 * @params minSize - min size of snowflake, 10 by default
 * @params maxSize - max size of snowflake, 20 by default
 * @params newOn - frequency in ms of appearing of new snowflake, 500 by default
 * @params flakeColors - array of colors , #FFFFFF by default
 * @params durationMillis - stop effect after duration
 * @example $.fn.snow({ maxSize: 200, newOn: 1000 });
 */
(function($){
	
	$.fn.snow = function(options){
	
			var $flake 			= $('<div class="flake" />').css({'position': 'absolute', 'top': '-50px'}),
				documentHeight 	= $(document).height(),
				documentWidth	= $(document).width(),
				defaults		= {
									flakeChar	: "<img src='img/money04.gif'>", 
									minSize		: 10,
									maxSize		: 20,
									newOn		: 500,
									flakeColor	: ["#ffffff"],
									durationMillis: null
								},
				options			= $.extend({}, defaults, options);
							
			$flake.html(options.flakeChar);

			var interval		= setInterval( function(){
				var startPositionLeft 	= Math.random() * documentWidth - 100,
				 	startOpacity		= 1 + Math.random(),
					sizeFlake			= options.minSize + Math.random() * options.maxSize,
					endPositionTop		= documentHeight - defaults.maxSize - 40,
					endPositionLeft		= startPositionLeft - 100 + Math.random() * 100, 
					durationFall		= documentHeight * 10 + Math.random() * 5000; 
				$flake
					.clone()
					.appendTo('body')
					.css(
						{
							left: startPositionLeft,
							opacity: startOpacity,
							'font-size': sizeFlake,
							color: options.flakeColor[Math.floor((Math.random() * options.flakeColor.length))]
						}
					)
					.animate(
						{
							top: endPositionTop,
							left: endPositionLeft,
							opacity: 1
						},
						durationFall,
						'linear',
						function() {
							$(this).remove()
						}
					);
			}, options.newOn);

			if (options.durationMillis) {
				setTimeout(function() {
					removeInterval(interval);
				}, options.durationMillis);
			}	
	};
	
})(jQuery);
Ответить с цитированием
  #2 (permalink)  
Старый 18.12.2015, 22:00
Аватар для light
Аспирант
Отправить личное сообщение для light Посмотреть профиль Найти все сообщения от light
 
Регистрация: 11.04.2014
Сообщений: 60

Нашел)
removeInterval нужно было заменить на clearInterval. Всем спасибо)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Остановить таймер setInterval Орёл Общие вопросы Javascript 8 11.01.2015 22:07
Как остановить requestAnimationFrame() ? Livanderiaamarum Общие вопросы Javascript 19 09.11.2014 02:41
как остановить функцию? vladimir7517 jQuery 10 11.10.2013 13:17
Как вовремя остановить анимацию poorking Общие вопросы Javascript 2 11.02.2011 19:06
остановить скрипт если мышка не двигалась 2 минуты на этом сайте TavRox jQuery 4 17.01.2011 15:00