Navigation avec le clavier pour bonjourdubstep.fr

Une petite feature qui me tenait à coeur pour bonjourdubstep : la navigation par clavier. Ainsi, nous pouvons utiliser la touche « r » pour aller sur une page choisie aléatoirement; « j » pour la page suivante; « k » pour la page suivante et « h » pour revenir sur la home.

La contrainte ici, c’est que cela ne fonctionnera qu’uniquement sur une url type /page/N, vu que les URL avec le titre du morceau à l’intérieur ne fonctionnent pas étant donné qu’elles ne récupèrent pas l’ID de la page comme le fait /page/N. Merci tumblr.

Bref, pour ceux que ça pourrait intéresser et faire genre j’sais utiliser la librairie jQuery, voici le code :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
jQuery("body").keydown(function(event) {
// Si le keycode de l'event (= touche pressée (keydown)) est 82 (correspond à la touche "r")
if (event.keyCode == '82') {
// On récupère les pages total avec le tag qui va bien de Tumblr
var totalpages = {TotalPages};
if (totalpages > 1) {
// Ensuite, le calcul qui va bien pour sortir un numéro entre {1;totalpages}
var randPage = Math.ceil(Math.random() * totalpages);
// On redirige la fenêtre vers /page/randPage
window.location.href='/page/'+randPage
}
}
 
// Si le keycode est celui de la touche "h"
if (event.keyCode == '72') {
// On redirige à la racine
window.location.href='/'
}
// Si le keycode est celui de la touche "j"
if (event.keyCode == '74') {
// On var l'id de la page courante
var currentpage = {CurrentPage};
// Si elle est suppérieur à 1 (pour ne pas aller à /page/0/ et inférieur)
if (currentpage > 1) {
// On va à currentpage-1
var prevpage = currentpage -1;
window.location.href='/page/'+prevpage
}
}
 
// Même principe que pour la touche "j", sauf que là, c'est "k"
if (event.keyCode == '75') {
var currentpage = {CurrentPage};
if (currentpage > {TotalPages}) {
var nextpage = currentpage +1;
window.location.href='/page/'+nextpage
}
}
});

Ensuite, un coup de JavaScript Compressor pour gagner en performance sur la page et zou.

Egalement l’occasion pour moi de tester Sublime Text v2, chaudement recommandé par @_kud, qui n’a pas l’air trop vilain.

Allez, kiss !