[bug] [FP] Pijltoetsen werken niet meer in image-carrousel

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Topicstarter
Zie bijvoorbeeld reviews: Rage 2 - Nadere blik op levendige spelwereld

Volgens mij kon ik altijd gewoon door de plaatjes cyclen met de links/rechts pijltoetsen op het toetsenbord. Dat lijkt nu niet meer het geval.

Ik draai Chrome Version 71.0.3578.98 (Official Build) (64-bit) op Windows 10.
.edit: hij ging net updaten in het about scherm, 72.0.3626.81 zelfde verhaal ;)

[ Voor 18% gewijzigd door .oisyn op 30-01-2019 16:11 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 25-09 21:42

Hero of Time

Moderator LNX

There is only one Legend

Geen probleem bij mij met Otter-browser 0.9.99 RC12. En ook Firefox 64 doet het prima. Lijkt een Chrome fuckup te zijn.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • rens-br
  • Registratie: December 2009
  • Laatst online: 11:49

rens-br

Admin IN & Moderator Mobile
.oisyn schreef op woensdag 30 januari 2019 @ 16:09:
Zie bijvoorbeeld reviews: Rage 2 - Nadere blik op levendige spelwereld

Volgens mij kon ik altijd gewoon door de plaatjes cyclen met de links/rechts pijltoetsen op het toetsenbord. Dat lijkt nu niet meer het geval.
Bedoel je dan in de 'full-screen' browser (wanneer je op een van de afbeeldingen klikt hebt) of de image browser embedded in de pagina?

De 'full-screen' versie werkt hier prima, de geembedded versie niet.

Windows 7, Chrome 71.0.3578.98

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Topicstarter
rens-br schreef op woensdag 30 januari 2019 @ 16:33:
[...]


Bedoel je dan in de 'full-screen' browser (wanneer je op een van de afbeeldingen klikt hebt) of de image browser embedded in de pagina?
Ah ja, misschien is dat het verschil. Misschien dan verplaatsen naar Mooie Features, want het zou wel fijn zijn als ze ook embedded werken :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 10:56

crisp

Devver

Pixelated

.oisyn schreef op woensdag 30 januari 2019 @ 16:41:
[...]

Ah ja, misschien is dat het verschil. Misschien dan verplaatsen naar Mooie Features, want het zou wel fijn zijn als ze ook embedded werken :)
Dat hebben we overwogen bij de ontwikkeling, maar buiten dat het technisch lastig te realiseren was heb je ook het probleem hoe je dat zou moeten 'activeren' voor een specifieke carrousel; er kunnen er immers meerdere zijn op 1 pagina, en zelfs bij maar 1 is het niet handig om zomaar de pijltjestoetsen te 'kapen'. Daarbij is het voldoende om op de grote image te klikken om de modal imageviewer te openen waar je vervolgens wel volledige keyboard support hebt.

Ik zal deze iig verplaatsen naar Mooie Features maar ik geef het weinig kans...

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • HolyPanther
  • Registratie: December 2003
  • Niet online
Onderstaand heb ik een tijd geleden snel in elkaar geflanst maar kan als basisidee dienen.
Het idee is alleen hijacken wanneer er geen metaKey(dus alleen pijltjestoets) gebruikt wordt en het element in view is.

Een andere optie die ik wel mooi vind is tijdens het indrukken van een pijltjestoets een overlaymelding te geven in de gallery dat pijltjestoetsen wel werken in de full screen modus van de gallery.(zoals wanneer je bij een Google maps embed scrolled)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
let keydownEvent = (e: KeyboardEvent) => {
    if (e.metaKey
        || [37, 39].indexOf(e.which) === -1
        || (
            !utilities.isElementInViewport(self.slider, 200)
            && !utilities.isElementInViewport(self.thumbswrap.parentElement, 10)
        )
    ) {
        return;
    }
    if (e.which === 37) {
        self.toSlide(self.currentIndex - 1);
    } else if (e.which === 39) {
        self.toSlide(self.currentIndex + 1);
    }
};

code:
1
2
3
4
5
6
7
8
9
10
11
12
export function isElementInViewport (el: HTMLElement, overlap?: number): boolean
{
    var rect = el.getBoundingClientRect();
    overlap = overlap || 0;

    return (
        rect.top >= 0 - overlap &&
        rect.left >= 0 - overlap &&
        rect.bottom <=  (window.innerHeight || document.documentElement.clientHeight) + overlap &&
        rect.right <= (window.innerWidth || document.documentElement.clientWidth)
    );
}
Pagina: 1