Javascript.RU

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

JS Воспроизведение функции!?
Вообщем здание можно сказать простое, просто не знаю как реализовать:
Есть некая функция
function video() {...}
в теле документа есть кнопка, которая запускает эту функцию на!
Вопрос: Каким образом можно сделать воспроизведение функции до тех пор, пока нажата кнопка!

P.S. Просто через функцию Onclik идет лишь одно нажатие после которого выполняеться функция, а мне необходим воспроизведение функции при зажатой кнопке!
Ну надеюсь понятно расписал)) Если что напишу подробнее! + Мне не нужен код всей программы, мне нужно как именно сделать такую кнопку!
Ответить с цитированием
  #2 (permalink)  
Старый 25.04.2011, 12:05
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

При mousedown запускаем таймер (1, 2) который периодически запускает функцию. С остановкой сложнее: пользователь может, не отпуская кнопки мыши, перенести курсор вне кнопки и отпустить - mouseup не сработает. Это тоже надо продумать.

Еще можно сделать, что бы при первом клике кнопка нажималась, при втором - отжималась.

Последний раз редактировалось Riim, 25.04.2011 в 12:13.
Ответить с цитированием
  #3 (permalink)  
Старый 25.04.2011, 12:08
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

можно mouseup на document повесить
__________________
readOnly
Ответить с цитированием
  #4 (permalink)  
Старый 25.04.2011, 12:12
Профессор
Отправить личное сообщение для Severtain Посмотреть профиль Найти все сообщения от Severtain
 
Регистрация: 25.04.2011
Сообщений: 280

А если это сделать при нажатии кнопки на клавиатуре! С помошью чего можно сделать такую же функцию??

+ можно ссылочки на примеры.. если есть такие

Спасибо!
Ответить с цитированием
  #5 (permalink)  
Старый 25.04.2011, 12:16
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

<!DOCTYPE html>
<meta charset = "utf-8" />
<script type = "text/javascript">


window.onload = function(){
	
	var console = document.getElementById("console");
	
	function log(text){
		console.innerHTML += text + "<BR />";
	}
	
	document.getElementById("go").onmousedown = function(){
		(function(){
			log("оппа!");
			timer = window.setTimeout(arguments.callee, 500);
		}())
		
	}
	
	document.onmouseup = function(){
		window.clearInterval(timer);
	}
	
}
</script>

<button id = "go">go!</button>

<div id = "console"></div>
__________________
readOnly
Ответить с цитированием
  #6 (permalink)  
Старый 25.04.2011, 12:22
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от Severtain
при нажатии кнопки на клавиатуре
лови события keypress (keydown для оперы) и keyup. И в обработчике что-то вроде того:
function(e) {
	if ((e.keyCode || e.which) != 9/* код клавиши */) {
		/* .... */
	}
}
Ответить с цитированием
  #7 (permalink)  
Старый 25.04.2011, 12:24
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

Добавил возможность нажатия стрелку влево
<!DOCTYPE html>
<meta charset = "utf-8" />
<script type = "text/javascript">
window.onload = function(){
	
	var console = document.getElementById("console");
	
	var progress = false;
	
	function log(text){
		console.innerHTML += text + "<BR />";
	}
	
	
	function video(){
		
		if(progress){
			return false;
		}
		
		progress = true;
		
		(function(){
			log("оппа!");
			
			if(progress){
				window.setTimeout(arguments.callee, 250);
			}
		
		}())
	}
	
	function stop(){
		progress = false;
	}
	
	document.getElementById("go").onmousedown = video;
	
	document.onmouseup = stop;
	
	function key(e){
		return function(event){
			return event.which || event.keyCode;
		}(e || window.event)
	}
	
	//СТРЕЛКА ВЛЕВО
	var pushed = false;
	window.onkeydown = function(e){
		if(key(e) == 37){
			if(pushed){
				return false;
			}
			pushed = true;
			video();
			
		}
	}
	
	window.onkeyup = function(e){
		if(key(e) == 37){
			pushed = false;
			stop();
		}
	}
	
}

</script>

<button id = "go">go!</button>

<div id = "console"></div>
__________________
readOnly

Последний раз редактировалось poorking, 25.04.2011 в 13:28.
Ответить с цитированием
  #8 (permalink)  
Старый 25.04.2011, 12:26
Профессор
Отправить личное сообщение для Severtain Посмотреть профиль Найти все сообщения от Severtain
 
Регистрация: 25.04.2011
Сообщений: 280

Большое спасибо буду разбираться!
Ответить с цитированием
  #9 (permalink)  
Старый 25.04.2011, 12:30
Профессор
Отправить личное сообщение для Severtain Посмотреть профиль Найти все сообщения от Severtain
 
Регистрация: 25.04.2011
Сообщений: 280

Супер все отлично работает! То что нужно!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Результат JS функции предать в RoR метод axon Серверные языки и технологии 0 23.02.2011 19:30
Запуск при редиректе некой js функции Dorsaj Элементы интерфейса 0 22.10.2010 16:05
Js и функции в нем Basonsan Общие вопросы Javascript 7 25.10.2009 10:53
Вызов событий из js функции Destrifer Общие вопросы Javascript 5 29.11.2008 15:28
вызов функции, из JS генерируемого на сервере subaru AJAX и COMET 1 12.07.2008 13:44