Выбор элемента html клавишами.
Добрый день друзья. Не так давно начал изучать js, сейчас делаю тестовое задание и возникла трудность.
Есть html страничка с кнопками (button) и область с изображением, при клике на кнопки меняется изображение соответствующее кнопке. Вопрос в том, можно ли сделать на js перемещение по кнопкам клавишами up-down и активацией по Enter? То есть клавишами перемещаемся по button'ам, выбранный button выделяется другим цветом, а при нажатии enter меняется изображение. Было бы неплохо хотя бы примитивный пример:help: |
Александр Македонский,
Цитата:
|
<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(){
тут меняем изображение
}
|
Цитата:
У нас есть раздел "Работа", самый раз разместить там такую объяву и предложить деньги за реализацию. ;) |
Цитата:
|
Цитата:
Ты просишь делать других... Цитата:
<!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>
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Есть такая мысль, при нажатии стрелок, меняем css кнопки для выделения как таргета, так будет норм?
|
Цитата:
Делай примеры... Как я. ;) |
Цитата:
|
В качестве черновика
<style>
button{
cursor: pointer;
text-align: left;
width:130px;
height:25px
}
.buttons{
width: 132px;
float: left;
}
.active {
background-color:lightblue;
}
</style>
<div class ="buttons">
<button onclick="showImg(0)">first</button>
<button onclick="showImg(1)">second</button>
<button onclick="showImg(2)">third</button>
</div>
<img id="im" src= "" />
<script>
var images = ["http://javascript.ru/cat/list/donkey.gif","http://javascript.ru/cat/list/js.gif","http://javascript.ru/cat/list/project.jpg"],
but = document.getElementsByTagName('button'),
i = 0;
but[i].focus();
but[i].blur();
but[i].classList.add('active');
showImg(i);
document.onkeydown = function(e) {
e.preventDefault();
but[i].classList.remove('active');
if(e.keyCode == 39 || e.keyCode == 40) { i++; }
if(e.keyCode == 37 || e.keyCode == 38) { i--; }
if(i < 0) { i = 2;}
if(i > 2) { i = 0;}
but[i].classList.add('active');
showImg(i);
}
function showImg(index) {
but[i].classList.remove('active');
im.src = images[index];
i = index;
but[i].classList.add('active');
}
</script>
фокусы с фокусом (строки 27-28) - только для того, чтобы стрелки сразу работали в демо |
Цитата:
|
| Часовой пояс GMT +3, время: 16:15. |