Enhance slideshow responsiveness by adjusting dot display for small screens

This commit is contained in:
CodeDevMLH
2026-03-23 17:25:48 +01:00
parent e25a99439a
commit e9fe356cee
2 changed files with 19 additions and 2 deletions

View File

@@ -749,6 +749,14 @@
left: 50%; left: 50%;
transform: translateX(-50%) scale(0.8); transform: translateX(-50%) scale(0.8);
background-color: #ffffff00; background-color: #ffffff00;
width: max-content;
max-width: 90vw;
flex-wrap: nowrap;
overflow: hidden;
}
.dot {
flex-shrink: 0;
} }
.dot.active { .dot.active {

View File

@@ -1,4 +1,4 @@
/* /*
* Jellyfin Slideshow by M0RPH3US v4.0.1 * Jellyfin Slideshow by M0RPH3US v4.0.1
* Modified by CodeDevMLH * Modified by CodeDevMLH
* *
@@ -2363,8 +2363,17 @@ const SlideshowManager = {
const totalItems = STATE.slideshow.totalItems || 0; const totalItems = STATE.slideshow.totalItems || 0;
// dynamically lower the max dots threshold on small screens
let effectiveMaxDots = CONFIG.maxPaginationDots;
if (window.matchMedia("(max-width: 767px) and (orientation: portrait)").matches) {
const availableWidth = window.innerWidth * 0.9;
const dotWidth = 18; // approximate width per dot
const fittingDots = Math.floor(availableWidth / dotWidth) - 1;
effectiveMaxDots = Math.min(effectiveMaxDots, fittingDots);
}
// Switch to counter style if too many items // Switch to counter style if too many items
if (totalItems > CONFIG.maxPaginationDots) { if (totalItems > effectiveMaxDots) {
const counter = document.createElement("span"); const counter = document.createElement("span");
counter.className = "slide-counter"; counter.className = "slide-counter";
counter.id = "slide-counter"; counter.id = "slide-counter";