gfsd
This commit is contained in:
+39
-8
@@ -88,6 +88,8 @@ const updateHoverStates = () => {
|
||||
const isOver = mouseX >= rect.left && mouseX <= rect.right &&
|
||||
mouseY >= rect.top && mouseY <= rect.bottom;
|
||||
p.classList.toggle("v0ck_hover", isOver);
|
||||
const gal = p.closest('.album-gallery-container');
|
||||
if (gal) gal.classList.toggle("v0ck_hover", isOver);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -117,6 +119,8 @@ class v0ck {
|
||||
if (mouseX >= rect.left && mouseX <= rect.right &&
|
||||
mouseY >= rect.top && mouseY <= rect.bottom) {
|
||||
parent.classList.add("v0ck_hover", "v0ck_no_transition");
|
||||
const gal = parent.closest('.album-gallery-container');
|
||||
if (gal) gal.classList.add("v0ck_hover");
|
||||
// Remove no-transition after a frame
|
||||
setTimeout(() => parent.classList.remove("v0ck_no_transition"), 50);
|
||||
}
|
||||
@@ -142,14 +146,24 @@ class v0ck {
|
||||
if (!ph) {
|
||||
ph = document.createElement('div');
|
||||
ph.className = 'sidebar-media-placeholder audio';
|
||||
ph.innerHTML = '<div class="audio-cover-circle"></div><i class="fa-solid fa-music"></i>';
|
||||
ph.innerHTML = '<div class="audio-cover-circle"><i class="fa-solid fa-music"></i></div>';
|
||||
player.prepend(ph);
|
||||
}
|
||||
let coverCircle = ph.querySelector('.audio-cover-circle');
|
||||
if (!coverCircle) {
|
||||
coverCircle = document.createElement('div');
|
||||
coverCircle.className = 'audio-cover-circle';
|
||||
coverCircle.innerHTML = '<i class="fa-solid fa-music"></i>';
|
||||
ph.insertBefore(coverCircle, ph.firstChild);
|
||||
} else {
|
||||
if (!coverCircle.querySelector('i')) {
|
||||
const existingI = ph.querySelector(':scope > i');
|
||||
if (existingI) {
|
||||
coverCircle.appendChild(existingI);
|
||||
} else {
|
||||
coverCircle.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-music"></i>');
|
||||
}
|
||||
}
|
||||
}
|
||||
player.style.backgroundImage = 'none';
|
||||
player.style.backgroundColor = 'transparent';
|
||||
@@ -157,7 +171,7 @@ class v0ck {
|
||||
coverCircle.style.backgroundImage = `url('${poster}')`;
|
||||
ph.classList.add('has-cover');
|
||||
} else {
|
||||
coverCircle.style.backgroundImage = 'none';
|
||||
coverCircle.style.backgroundImage = '';
|
||||
ph.classList.remove('has-cover');
|
||||
}
|
||||
}
|
||||
@@ -203,6 +217,23 @@ class v0ck {
|
||||
let wasPausedWhenStarted = false;
|
||||
// Mobile tap-to-show-controls: true when this touch revealed the controls bar
|
||||
let controlsJustShown = false;
|
||||
|
||||
const setHover = (active) => {
|
||||
if (active) {
|
||||
player.classList.add('v0ck_hover');
|
||||
const gal = player.closest('.album-gallery-container');
|
||||
if (gal) gal.classList.add('v0ck_hover');
|
||||
} else {
|
||||
player.classList.remove('v0ck_hover');
|
||||
const gal = player.closest('.album-gallery-container');
|
||||
if (gal) {
|
||||
gal.classList.remove('v0ck_hover');
|
||||
gal.classList.remove('strip-peek');
|
||||
const strip = gal.querySelector('.album-thumbnails-strip');
|
||||
if (strip) strip.classList.remove('strip-peek');
|
||||
}
|
||||
}
|
||||
};
|
||||
const speedIndicator = player.querySelector('.v0ck_speed_indicator');
|
||||
|
||||
// (mouse position is now tracked via docMouseX/docMouseY in resetControlsTimer block)
|
||||
@@ -343,7 +374,7 @@ class v0ck {
|
||||
if (isMobile && controlsJustShown) {
|
||||
// First tap: controls were just revealed by this touch — don't toggle play
|
||||
controlsJustShown = false;
|
||||
player.classList.add('v0ck_hover');
|
||||
setHover(true);
|
||||
return;
|
||||
}
|
||||
controlsJustShown = false;
|
||||
@@ -353,7 +384,7 @@ class v0ck {
|
||||
toggle.addEventListener('click', togglePlay);
|
||||
overlay.addEventListener('click', e => {
|
||||
e.stopPropagation();
|
||||
player.classList.add('v0ck_hover');
|
||||
setHover(true);
|
||||
togglePlay();
|
||||
});
|
||||
video.addEventListener('play', updatePlayIcon);
|
||||
@@ -831,7 +862,7 @@ class v0ck {
|
||||
}
|
||||
|
||||
if (isMobile && !isInsidePlayer && !isFlashYankUI) {
|
||||
player.classList.remove('v0ck_hover');
|
||||
setHover(false);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -928,7 +959,7 @@ class v0ck {
|
||||
const isFullscreen = player.classList.contains('v0ck_fullscreen');
|
||||
if (!video.paused || isFullscreen) {
|
||||
controlsTimer = setTimeout(() => {
|
||||
player.classList.remove('v0ck_hover');
|
||||
setHover(false);
|
||||
if (settingsMenu && !settingsMenu.classList.contains('v0ck_hidden')) {
|
||||
settingsMenu.classList.add('v0ck_hidden');
|
||||
document.dispatchEvent(new CustomEvent('v0ck_settings_closed'));
|
||||
@@ -950,7 +981,7 @@ class v0ck {
|
||||
docMouseX = e.clientX;
|
||||
docMouseY = e.clientY;
|
||||
}
|
||||
player.classList.add('v0ck_hover');
|
||||
setHover(true);
|
||||
resetControlsTimer();
|
||||
}
|
||||
|
||||
@@ -998,7 +1029,7 @@ class v0ck {
|
||||
}
|
||||
docMouseX = -1;
|
||||
docMouseY = -1;
|
||||
player.classList.remove('v0ck_hover');
|
||||
setHover(false);
|
||||
clearTimeout(controlsTimer);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user