Javascript.RU

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

Пауза/продолжение выполнения скрипта по нажатию кнопки клавиатуры
Доброго времени суток!
Уважаемые, просто прошу помочь готовым решением, признаюсь честно. JavaScript увидел вчера утром и вряд ли в ближайшее время он мне будет интересен. Мы вообще музыканты Что сделано можено взглянуть тут: http://meutesto.webutu.com/ (бесплатный хостинг с единственным index.html) То, как работает сейчас при отсутствии других решений нас устроит, но хотелось бы добить тему: хочется, чтобы по нажатию пробела (на самом деле и пробел нажиматься не будет - будут голосовые команды через связку Typle + Autohotkey) скролинг останавливался и запускался, так же, как сейчас через alert. Вот код того, что я наваял из разных источников (если лень будет смотреть по ссылке):
Код:
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<title>Пример №1 к статье "Скрипт для плавной прокрутки на низ страницы"</title>

<script>
var t;
function up() {
		if((window.innerHeight + window.pageYOffset) < document.documentElement.scrollHeight) {
		window.scrollBy(0,1);
		t = setTimeout('up()',20);}
		else clearTimeout(t);
		return false;
}

</script>

</head>

<body onkeydown="alert('Клик!')">

<a href="#" id="up" onclick="return up()">вниз</a><br>

<h1> .... </h1>

<p>......</p>

</div>

</body>
</html>
Можно ли сделать такой стоп/старт как-то более или менее просто или нужно писать что-то ужасное и сложное? Вобщем, помогите люди добрые!
Ответить с цитированием
  #2 (permalink)  
Старый 14.07.2017, 16:18
Новичок на форуме
Отправить личное сообщение для yandibilds Посмотреть профиль Найти все сообщения от yandibilds
 
Регистрация: 14.07.2017
Сообщений: 4

Я сделяль: http://meutesto.webutu.com/
Типа, код:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Старт и запуск скрипта JavaScript по "пробелу"</title>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>

<script>
var t;
var a = 0;
function up() {
		if((window.innerHeight + window.pageYOffset) < document.documentElement.scrollHeight) {
		window.scrollBy(0,3);
		t = setTimeout('up()',10);}
		else clearTimeout(t);
		return false;
}

function stop() {
		a++;
		if((a%2) > 0) {
			up();}
			else clearTimeout(t); return false;
}

</script>

<script type="text/javascript">
    $(window).keypress(function (e) {
		if (e.keyCode === 0 || e.keyCode === 32) {
		e.preventDefault(e);
		stop();}
	})
</script>

<style>
body {
	font: 15px/20px Arial, Tahoma, sans-serif;
	width: 700px;
    height: 1300px;
	margin: 30px auto;
}
h1 {
	font-size: 25px;
	font-weight: normal;
	line-height: 1.3;
	margin: 0 0 22px;
	text-align: center;
}
p {
	margin: 0 0 22px;
}
a {
	color: #0094D6;
}
</style>
</head>

<body>

<h1>Пример: скрипт для плавной прокрутки в низ страницы с остановкой и повторным запуском с места остановки по "пробелу"(JavaScript/jQuery)</h1>

</div>

</body>
</html>


Для чистоты эксперимента осталось только сделать так, чтобы сия конструкция работала исключительно по пробелу, так как сейчас всё это дело запускается буквами и цифирью также, но то такэ, интерес чисто академический
Ответить с цитированием
  #3 (permalink)  
Старый 14.07.2017, 16:43
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

e.keyCode === 32 это и есть пробел, так что все работает.
Ответить с цитированием
  #4 (permalink)  
Старый 14.07.2017, 17:17
Новичок на форуме
Отправить личное сообщение для yandibilds Посмотреть профиль Найти все сообщения от yandibilds
 
Регистрация: 14.07.2017
Сообщений: 4

Сообщение от j0hnik Посмотреть сообщение
e.keyCode === 32 это и есть пробел, так что все работает.
Если убрать
e.keyCode === 0 ||
, то не работает пробел (ничего не работает), точнее, он по дефолту прокручивает страницу, а так как сейчас запуск прокрутки осуществляет не только пробел, но и нажатие на любую букву или цифру.
Ответить с цитированием
  #5 (permalink)  
Старый 14.07.2017, 19:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

yandibilds,
$(window).keypress(function (e) {
    if (e.which === 32) {
    e.preventDefault(e);
    stop();}
  })
Ответить с цитированием
  #6 (permalink)  
Старый 14.07.2017, 19:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

yandibilds,
jquery/1.6.1 поставьте вначале новее версию например 1.12.4
Ответить с цитированием
  #7 (permalink)  
Старый 14.07.2017, 20:34
Новичок на форуме
Отправить личное сообщение для yandibilds Посмотреть профиль Найти все сообщения от yandibilds
 
Регистрация: 14.07.2017
Сообщений: 4

Сообщение от рони Посмотреть сообщение
yandibilds,
$(window).keypress(function (e) {
    if (e.which === 32) {
    e.preventDefault(e);
    stop();}
  })
Это просто праздник какой-то! Спасибо!
p.s. и версию сменил )
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как можно активировать обработчик не по нажатию кнопки, а при всплытии формы? DDim1000 jQuery 7 25.11.2016 14:22
Заменить переменную по нажатию кнопки sashgera Элементы интерфейса 2 11.09.2014 13:34
Получить результат выполнения скрипта на сервере в переменную ява gyper AJAX и COMET 5 19.11.2012 11:36
Вызов сценария php по нажатию кнопки с передачей параметра Allan Stark ExtJS 2 09.10.2012 12:50
Google Chrome перерисовка страницы во время выполнения скрипта Dekart Javascript под браузер 0 08.06.2010 08:35