Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Выбор элемента html клавишами. (https://javascript.ru/forum/events/66784-vybor-ehlementa-html-klavishami.html)

Александр Македонский 10.01.2017 15:03

Выбор элемента html клавишами.
 
Добрый день друзья. Не так давно начал изучать js, сейчас делаю тестовое задание и возникла трудность.

Есть html страничка с кнопками (button) и область с изображением, при клике на кнопки меняется изображение соответствующее кнопке. Вопрос в том, можно ли сделать на js перемещение по кнопкам клавишами up-down и активацией по Enter? То есть клавишами перемещаемся по button'ам, выбранный button выделяется другим цветом, а при нажатии enter меняется изображение. Было бы неплохо хотя бы примитивный пример:help:

Dilettante_Pro 10.01.2017 15:21

Александр Македонский,
Цитата:

Сообщение от Александр Македонский
Есть html страничка с кнопками (button) и область с изображением

Выложите в качестве исходного макета

Александр Македонский 10.01.2017 15:22

<style>
button{
    cursor: pointer;
    text-align: left;
    width:130px;
    height:25px
}
.buttons{
  width: 132px;
  float: left;
}
</style>
<div class ="buttons">
   <button id="1" onclick="function()">first</button>
   <button id="2" onclick="function()">second</button>
   <button id="3" onclick="function()">third</button>
</div>


function(){
   тут меняем изображение
}

ksa 10.01.2017 15:38

Цитата:

Сообщение от Александр Македонский
Вопрос в том, можно ли сделать на js перемещение по кнопкам клавишами up-down и активацией по Enter? То есть клавишами перемещаемся по button'ам, выбранный button выделяется другим цветом, а при нажатии enter меняется изображение. Было бы неплохо хотя бы примитивный пример

Дюже много за раз. :D
У нас есть раздел "Работа", самый раз разместить там такую объяву и предложить деньги за реализацию. ;)

Александр Македонский 10.01.2017 15:43

Цитата:

Сообщение от ksa (Сообщение 440216)
Дюже много за раз. :D
У нас есть раздел "Работа", самый раз разместить там такую объяву и предложить деньги за реализацию. ;)

Если бы коммерческий проект, то возможно, а я для себя:)

ksa 10.01.2017 15:50

Цитата:

Сообщение от Александр Македонский
а я для себя

Так ты же не делаешь. :D
Ты просишь делать других...

Цитата:

Сообщение от Александр Македонский
при нажатии enter меняется изображение

Как вариант...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
button{
	cursor: pointer;
	text-align: left;
	width:130px;
	height:25px
}
.buttons{
	width: 132px;
	float: left;
}
</style>
<script type='text/javascript'>
$(function (){
	$('button').click(function(){
		var o=$('#img');
		o.empty().html('<img src="'+$(this).data('img')+'" />');
	});
});
</script>
</head>
<body>
<div id='img'></div>
<div class='buttons'>
   <button id="1" data-img='http://javascript.ru/forum/images/smilies/smile.gif'>first</button>
   <button id="2" data-img='http://javascript.ru/forum/images/smilies/laugh.gif'>second</button>
   <button id="3" data-img='http://javascript.ru/forum/images/smilies/lol.gif'>third</button>
</div>
</body>
</html>

Александр Македонский 10.01.2017 15:56

Цитата:

Сообщение от ksa (Сообщение 440219)
Так ты же не делаешь. :D
Ты просишь делать других...


Как вариант...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
button{
	cursor: pointer;
	text-align: left;
	width:130px;
	height:25px
}
.buttons{
	width: 132px;
	float: left;
}
</style>
<script type='text/javascript'>
$(function (){
	$('button').click(function(){
		var o=$('#img');
		o.empty().html('<img src="'+$(this).data('img')+'" />');
	});
});
</script>
</head>
<body>
<div id='img'></div>
<div class='buttons'>
   <button id="1" data-img='http://javascript.ru/forum/images/smilies/smile.gif'>first</button>
   <button id="2" data-img='http://javascript.ru/forum/images/smilies/laugh.gif'>second</button>
   <button id="3" data-img='http://javascript.ru/forum/images/smilies/lol.gif'>third</button>
</div>
</body>
</html>

Дружище, ты не понял)) Переключение изображение по клику мышки у меня реализовано, проблема в том, что я не знаю как сделать это по клавишам. Т.е. стрелками выбираем кнопку и жмем Enter - меняется изображение.

ksa 10.01.2017 15:59

Цитата:

Сообщение от Александр Македонский
Переключение изображение по клику мышки у меня реализовано

По Энтер будет аналогично... :)

ksa 10.01.2017 16:01

Цитата:

Сообщение от Александр Македонский
стрелками выбираем кнопку

На каком элементе находится фокус первоначально?

Александр Македонский 10.01.2017 16:03

Цитата:

Сообщение от ksa (Сообщение 440223)
По Энтер будет аналогично... :)

Для меня не понятно, как реализовать выбор кнопки стрелками вверх-вниз. Т.е. стрелками выбираем кнопку, выбранная кнопка меняет цвет, а когда жмякаем Энтр, должно поменяться изображение.:)


Часовой пояс GMT +3, время: 12:28.