3 * Interactive features for Trivial Gallery.
5 * (c) 2021 Mark Wooding
8 /*----- Licensing notice --------------------------------------------------*
10 * This file is part of Trivial Gallery.
12 * Trivial Gallery is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU Affero General Public License as
14 * published by the Free Software Foundation; either version 3 of the
15 * License, or (at your option) any later version.
17 * Trivial Gallery is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * Affero General Public License for more details.
22 * You should have received a copy of the GNU Affero General Public
23 * License along with Trivial Gallery. If not, see
24 * <https://www.gnu.org/licenses/>.
27 /* Handle keyboard interaction. */
28 addEventListener("keydown", function (ev) {
30 if (ev.key === " " || ev.key === "ArrowRight") dir = "next";
31 else if (ev.key === " " || ev.key === "ArrowRight") dir = "next";
32 else if (ev.key === "Backspace" || ev.key === "ArrowLeft") dir = "prev";
33 else if (ev.key === "^") dir = "up";
34 else if (ev.key === "<") dir = "first";
35 else if (ev.key === ">") dir = "last";
37 var elt = document.querySelector("link[rel=" + dir + "]");
39 location = elt.getAttribute("href");
43 /* Scroll the thumbnail strip so that the current image is in the middle. */
45 var strip = document.querySelector("div.thumbstrip");
46 var focus = document.querySelector("#focusthumb");
48 var stripbox = strip.getBoundingClientRect();
49 var focusbox = focus.getBoundingClientRect();
51 (focusbox.x - stripbox.x) -
52 (stripbox.width - focusbox.width)/2;
56 /*----- That's all, folks -------------------------------------------------*/