Skip to content

Commit 7a4a0e5

Browse files
authored
feat(keyboard): add support for custom speed parameter in keyboard navigation (#8148)
1 parent c571088 commit 7a4a0e5

2 files changed

Lines changed: 12 additions & 4 deletions

File tree

src/modules/keyboard/keyboard.mjs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export default function Keyboard({ swiper, extendParams, on, emit }) {
1313
enabled: false,
1414
onlyInViewport: true,
1515
pageUpDown: true,
16+
speed: undefined,
1617
},
1718
});
1819

@@ -92,22 +93,23 @@ export default function Keyboard({ swiper, extendParams, on, emit }) {
9293
}
9394
if (!inView) return undefined;
9495
}
96+
const speed = swiper.params.keyboard.speed;
9597
if (swiper.isHorizontal()) {
9698
if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {
9799
if (e.preventDefault) e.preventDefault();
98100
else e.returnValue = false;
99101
}
100102
if (((isPageDown || isArrowRight) && !rtl) || ((isPageUp || isArrowLeft) && rtl))
101-
swiper.slideNext();
103+
swiper.slideNext(speed);
102104
if (((isPageUp || isArrowLeft) && !rtl) || ((isPageDown || isArrowRight) && rtl))
103-
swiper.slidePrev();
105+
swiper.slidePrev(speed);
104106
} else {
105107
if (isPageUp || isPageDown || isArrowUp || isArrowDown) {
106108
if (e.preventDefault) e.preventDefault();
107109
else e.returnValue = false;
108110
}
109-
if (isPageDown || isArrowDown) swiper.slideNext();
110-
if (isPageUp || isArrowUp) swiper.slidePrev();
111+
if (isPageDown || isArrowDown) swiper.slideNext(speed);
112+
if (isPageUp || isArrowUp) swiper.slidePrev(speed);
111113
}
112114
emit('keyPress', kc);
113115
return undefined;

src/types/modules/keyboard.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,10 @@ export interface KeyboardOptions {
4343
* @default true
4444
*/
4545
pageUpDown?: boolean;
46+
/**
47+
* Set the speed of keyboard navigation transitions (in ms)
48+
*
49+
* @default undefined
50+
*/
51+
speed?: number;
4652
}

0 commit comments

Comments
 (0)