diff --git a/index.php b/index.php
index 4bf1620..87ade36 100644
--- a/index.php
+++ b/index.php
@@ -660,8 +660,8 @@ $m3u_url = htmlspecialchars($config["m3u_url"] ?? "");
@@ -869,8 +869,6 @@ function renderPrograms(vs, ve) {
const inner = document.getElementById('programsInner');
inner.innerHTML = ''; inner.style.width = totalWidthPx+'px'; inner.style.height = (channels.length*ROW_H)+'px';
- const nowLine = document.createElement('div'); nowLine.className='now-line'; nowLine.id='nowLineGrid';
- inner.appendChild(nowLine);
const now = new Date();
channels.forEach((ch, i) => {
@@ -909,7 +907,9 @@ function renderPrograms(vs, ve) {
scrollListenerAdded = true;
document.getElementById('programsScroll').addEventListener('scroll', function() {
document.getElementById('timeRulerInner').style.transform = `translateX(-${this.scrollLeft}px)`;
- document.getElementById('nowLineRuler').style.left = (msToX(Date.now())-this.scrollLeft)+'px';
+ const visibleX = msToX(Date.now()) - this.scrollLeft;
+ document.getElementById('nowLineRuler').style.left = visibleX + 'px';
+ document.getElementById('nowLineGrid').style.left = visibleX + 'px';
document.getElementById('channelsList').scrollTop = this.scrollTop;
});
}
@@ -917,10 +917,13 @@ function renderPrograms(vs, ve) {
function positionNowLine() {
const x = msToX(Date.now());
+ const scroll = document.getElementById('programsScroll');
+ const scrollLeft = scroll ? scroll.scrollLeft : 0;
const ruler = document.getElementById('nowLineRuler');
const grid = document.getElementById('nowLineGrid');
- if (ruler) { ruler.style.left=x+'px'; ruler.style.top='0'; ruler.style.bottom='0'; }
- if (grid) { grid.style.left=x+'px'; grid.style.top='0'; grid.style.height=(channels.length*80)+'px'; }
+ const visibleX = x - scrollLeft;
+ if (ruler) { ruler.style.left = visibleX + 'px'; ruler.style.top='0'; ruler.style.bottom='0'; }
+ if (grid) { grid.style.left = visibleX + 'px'; grid.style.top='0'; grid.style.height='100%'; }
}
function centerNow() {