mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge pull request #4758 from dmitrylyzo/fix-slider-step
This commit is contained in:
commit
a5feddb48b
1 changed files with 25 additions and 4 deletions
|
@ -20,6 +20,27 @@ import '../emby-input/emby-input';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns normalized slider step.
|
||||||
|
*
|
||||||
|
* @param {HTMLInputElement} range slider itself
|
||||||
|
* @param {number|undefined} step step
|
||||||
|
* @returns {number} normalized slider step.
|
||||||
|
*/
|
||||||
|
function normalizeSliderStep(range, step) {
|
||||||
|
if (step > 0) {
|
||||||
|
return step;
|
||||||
|
}
|
||||||
|
|
||||||
|
step = parseFloat(range.step);
|
||||||
|
|
||||||
|
if (step > 0) {
|
||||||
|
return step;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns slider fraction corresponding to client position.
|
* Returns slider fraction corresponding to client position.
|
||||||
*
|
*
|
||||||
|
@ -35,7 +56,7 @@ import '../emby-input/emby-input';
|
||||||
// Snap to step
|
// Snap to step
|
||||||
const valueRange = range.max - range.min;
|
const valueRange = range.max - range.min;
|
||||||
if (range.step !== 'any' && valueRange !== 0) {
|
if (range.step !== 'any' && valueRange !== 0) {
|
||||||
const step = (range.step || 1) / valueRange;
|
const step = normalizeSliderStep(range) / valueRange;
|
||||||
fraction = Math.round(fraction / step) * step;
|
fraction = Math.round(fraction / step) * step;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,7 +75,7 @@ import '../emby-input/emby-input';
|
||||||
|
|
||||||
// Snap to step
|
// Snap to step
|
||||||
if (range.step !== 'any') {
|
if (range.step !== 'any') {
|
||||||
const step = range.step || 1;
|
const step = normalizeSliderStep(range);
|
||||||
value = Math.round(value / step) * step;
|
value = Math.round(value / step) * step;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -377,13 +398,13 @@ import '../emby-input/emby-input';
|
||||||
switch (keyboardnavigation.getKeyName(e)) {
|
switch (keyboardnavigation.getKeyName(e)) {
|
||||||
case 'ArrowLeft':
|
case 'ArrowLeft':
|
||||||
case 'Left':
|
case 'Left':
|
||||||
stepKeyboard(this, -this.keyboardStepDown || -1);
|
stepKeyboard(this, -normalizeSliderStep(this, this.keyboardStepDown));
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
break;
|
break;
|
||||||
case 'ArrowRight':
|
case 'ArrowRight':
|
||||||
case 'Right':
|
case 'Right':
|
||||||
stepKeyboard(this, this.keyboardStepUp || 1);
|
stepKeyboard(this, normalizeSliderStep(this, this.keyboardStepUp));
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue