Перейти к следующему / предыдущему названному якору с помощью клавиш со стрелками влево / вправо

0

Я создал галерею (используя ZenPhoto), и у меня есть все изображения с одной загрузки альбома на одной странице. Каждое изображение имеет именованный якорь:

<a href="image4_full.jpg" title="image4" name="image4">
  <img src="image4.jpg" alt="image4" />
</a>

--- edit --- Примечание: якоря не названы по порядку, имена могут быть любыми, например, "морковь", "пудели", "сибирская язва", "you_always_complicate_things".

Я хотел бы позволить пользователям перейти к следующему/предыдущему именованному якорю, используя клавиши со стрелками влево/вправо. Я буду использовать jQuery, если это необходимо, но я предпочел бы более короткое решение, если это легко возможно. Пожалуйста помоги :)

Теги:

1 ответ

1
Лучший ответ

Используйте событие Keydown:

var num = 1;
var imagecount = 4;
document.body.addEventListener('keydown', function (e) {
  var keyCode = e.keyCode;
  if(keyCode==37) { //left
    if(num > 1) num -= 1; 
    location.hash = "#image" + num;
  }
  else if(keyCode==39) { //right
    if(num <= imagecount) num += 1; 
    location.hash = "#image" + num;
  }
});

EDIT: использовать разные имена

var num = 0;
var images = new array();
images[0] = "image1";
images[1] = "imageZ";
images[2] = "theend";
var imagecount = images.length - 1;
document.body.addEventListener('keydown', function (e) {
  var keyCode = e.keyCode;
  if(keyCode==37) { //left
    if(num > 0) num -= 1; 
    location.hash = "#" + images[num];
  }
  else if(keyCode==39) { //right
    if(num < imagecount) num += 1; 
    location.hash = "#" + images[num];
  }
});

Вы можете сгенерировать массив изображений с помощью php (ответьте, если вам нужен код). "Хороший способ" был бы, насколько я знаю, иметь json файл с именами изображений и извлекать его с вашего сайта, но реализация этого без jQuery - это приключение в кросс-браузере.

  • 0
    Это очень эффективно, спасибо! Однако, возможно, мой пример кода вводил в заблуждение, потому что имена якорей взяты из имен изображений, поэтому на одной странице я могу иметь якоря с разными именами, например, «img1234», «морковь», «image4», «заправленный огнем», «капуста». , Было бы возможно иметь код обрабатывать это?
  • 0
    Отредактировал первоначальный ответ, чтобы соответствовать вашим потребностям;)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню