Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.11.2015, 14:59
Новичок на форуме
Отправить личное сообщение для batarejka Посмотреть профиль Найти все сообщения от batarejka
 
Регистрация: 01.11.2015
Сообщений: 4

Хелп, не могу написать таймер
Добрый день, изучаю js, не могу решить дз:
Создать текстовое поле и кнопку, при щелчке на кнопку цвет фона должен мигнуть количество раз, заданное в текстовом поле. Если в поле введены некорректные данные, то вывести сообщение в alert().
Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 01.11.2015, 15:22
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Покажи что уже сделано, а мы поможем исправить/улучшить код.
Ответить с цитированием
  #3 (permalink)  
Старый 01.11.2015, 16:21
Новичок на форуме
Отправить личное сообщение для batarejka Посмотреть профиль Найти все сообщения от batarejka
 
Регистрация: 01.11.2015
Сообщений: 4

Safort,
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>login</title>
<script languege="javascript">
function check(){
var header = document.getElementById('header');
var z = Number(document.form1.ogonek.value);
func(header,z);
}
function func(header, z){
if (z>0)

header.style.backgroundColor="red";

if (z == false)header.style.backgroundColor="white";
else alert ("введены не корректные данные");

}
</script>
</head>
<body id="header">
<form name = "form1" action = "seript/request.php" method="post">
<label>Кол-во миганий</label>
<input type="textarea" id = "ogonek">
<label id="og1"></label>
<br>
<input type="button" id = "kn1" value="мигай" onClick="check()">
</form>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 01.11.2015, 17:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Мигалка на js
batarejka,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  body{
    background-color: #D2B48C;
  }

  </style>
</head>

<body>
 <input id="n" name="" value="3">
 <input id="b" name="" type="button" value="go"  onclick="go(n.value)">
  <script>
function blinker(color, duration, elem) {
    var timer, rgb = getComputedStyle(elem)["backgroundColor"];
    return function fn(num) {
        window.clearTimeout(timer);
        if (isNaN(+num)) { alert("!!!"); return}
        (function mig(a) {
            elem.style.backgroundColor = a % 2 ? color : rgb;
            a-- && (timer = window.setTimeout(function() {
                mig(a)
            }, duration))
        })(num * 2)
    }
};
var go = blinker('#FF00FF',300, document.body)

  </script>

</body>

</html>
Ответить с цитированием
  #5 (permalink)  
Старый 01.11.2015, 18:12
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Дело было вечером - делать было нечего.

<!DOCTYPE HTML>
<html>
	<head>
		<title>Untitled</title>
		<meta charset="utf-8">
		<style type="text/css">
			body{
				background-color: #D2B48C;
			}
	  </style>
	</head>

	<body>
		
		<script type="text/javascript">
			function Blinker(element, color, frames, duration) {
				if(element instanceof Node) {
					this._color = color;
					this._duration = Math.max(+duration, 0) || Blinker.DEFAULT_DURATION;
					this._element = element;
					this._frames = Math.max(+frames, 1) || 1;
					this._currentFrame = this._frames * 2;
					this._originalColor = element.style.backgroundColor || '';
				}
				else {
					throw new Error('"Element" is not a "Node"');
				}
			};
			Blinker.prototype = {
				isPlayed: false,
				onEnd: null,
				onEnterFrame: null,
				
				changeFrame: function() {
					this._element.style.backgroundColor = this._currentFrame % 2 ? this._originalColor : this._color;
					this.dispatchEvent('onEnterFrame');
					if(!--this._currentFrame) {
						this.stop();
						this.dispatchEvent('onEnd');
					}
				},
				dispatchEvent: function(eventName) {
					if(typeof this[eventName] == 'function') {
						this[eventName]();
					}
				},
				start: function(newDuration) {
					if(this.isPlayed) {
						this.stop();
						this.isPlayed = true;
					}
					this._intervalID = setInterval(this.changeFrame.bind(this), this._duration);
				},
				stop: function() {
					clearInterval(this._intervalID);
					this.isPlayed = true;
					this._element.style.backgroundColor = this._originalColor;
				}
			};
			
			Blinker.DEFAULT_DURATION = 1000;
			
			
			
			var blinker = new Blinker(document.body, '#FF0AD4', 10, 500);
			blinker.start();

		</script>

	</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 01.11.2015, 18:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Ruslan_xDD,
Ответить с цитированием
  #7 (permalink)  
Старый 01.11.2015, 20:26
Новичок на форуме
Отправить личное сообщение для batarejka Посмотреть профиль Найти все сообщения от batarejka
 
Регистрация: 01.11.2015
Сообщений: 4

Ruslan_xDD,
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу остановить setinterval harley jQuery 3 09.09.2014 13:36
Не могу написать скрипт Proff Элементы интерфейса 4 15.06.2014 20:07
Не могу установить таймер Sashka Элементы интерфейса 0 25.05.2014 00:03
Не могу сделать таймер shaman1197 Элементы интерфейса 2 01.12.2013 11:11
Не могу написать норм прогу (события)!!! ego Общие вопросы Javascript 2 16.12.2009 23:01