mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-11 18:41:47 +00:00
fix slider not working on tap
This commit is contained in:
@ -24,6 +24,7 @@ const updatePlayBackSpeed = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let menu;
|
let menu;
|
||||||
|
let observingSlider = false;
|
||||||
|
|
||||||
const observePopupContainer = () => {
|
const observePopupContainer = () => {
|
||||||
const observer = new MutationObserver(() => {
|
const observer = new MutationObserver(() => {
|
||||||
@ -33,6 +34,10 @@ const observePopupContainer = () => {
|
|||||||
|
|
||||||
if (menu && !menu.contains(slider)) {
|
if (menu && !menu.contains(slider)) {
|
||||||
menu.prepend(slider);
|
menu.prepend(slider);
|
||||||
|
if (!observingSlider) {
|
||||||
|
setupSliderListener();
|
||||||
|
observingSlider = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -47,14 +52,7 @@ const observeVideo = () => {
|
|||||||
$('video').addEventListener('loadeddata', forcePlaybackRate)
|
$('video').addEventListener('loadeddata', forcePlaybackRate)
|
||||||
}
|
}
|
||||||
|
|
||||||
const setupSliderListeners = () => {
|
const setupWheelListener = () => {
|
||||||
slider.addEventListener('immediate-value-change', () => {
|
|
||||||
playbackSpeed = computePlayBackSpeed($('#playback-speed-slider #sliderBar').value);
|
|
||||||
if (isNaN(playbackSpeed)) {
|
|
||||||
playbackSpeed = 1;
|
|
||||||
}
|
|
||||||
updatePlayBackSpeed();
|
|
||||||
})
|
|
||||||
slider.addEventListener('wheel', e => {
|
slider.addEventListener('wheel', e => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
if (isNaN(playbackSpeed)) {
|
if (isNaN(playbackSpeed)) {
|
||||||
@ -72,6 +70,16 @@ const setupSliderListeners = () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setupSliderListener() {
|
||||||
|
$('#playback-speed-slider').addEventListener('immediate-value-changed', () => {
|
||||||
|
playbackSpeed = computePlayBackSpeed($('#playback-speed-slider #sliderBar').value);
|
||||||
|
if (isNaN(playbackSpeed)) {
|
||||||
|
playbackSpeed = 1;
|
||||||
|
}
|
||||||
|
updatePlayBackSpeed();
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
function forcePlaybackRate(e) {
|
function forcePlaybackRate(e) {
|
||||||
if (e.target.playbackRate !== playbackSpeed) {
|
if (e.target.playbackRate !== playbackSpeed) {
|
||||||
e.target.playbackRate = playbackSpeed
|
e.target.playbackRate = playbackSpeed
|
||||||
@ -82,6 +90,6 @@ module.exports = () => {
|
|||||||
document.addEventListener('apiLoaded', e => {
|
document.addEventListener('apiLoaded', e => {
|
||||||
observePopupContainer();
|
observePopupContainer();
|
||||||
observeVideo();
|
observeVideo();
|
||||||
setupSliderListeners();
|
setupWheelListener();
|
||||||
}, { once: true, passive: true })
|
}, { once: true, passive: true })
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user