Changes in src/assets/js/mod/news.js [a8364ee:52fc278] in Klonkt
- File:
-
- 1 edited
-
src/assets/js/mod/news.js (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/assets/js/mod/news.js
ra8364ee r52fc278 6 6 7 7 import { pageData } from './lib.js'; 8 9 // De twee gedelegeerde blokken dragen een window-vlag en zijn bij een tweede10 // init een no-op; de twee SCANNERS (gif-video's, lees-meer) moeten juist wel11 // elke render opnieuw over de verse elementen lopen (shaer-5s1). Element-12 // vlaggen (data-gif-wired, data-rm) houden dubbel bedraden tegen.13 export function init() { run(); }14 15 function run() {16 8 17 9 (function () { … … 85 77 /* Short feed videos (gif/cover loops like an animated cover) autoplay + loop muted like a GIF; 86 78 longer real videos keep their controls. Decided on the actual duration once metadata loads. */ 87 wireGifVideos(); 79 (function(){ 80 document.querySelectorAll('.tl-media-video').forEach(function(v){ 81 if (v.dataset.gifWired) return; v.dataset.gifWired = '1'; 82 var decide = function(){ 83 if (v.duration && v.duration <= 30) { 84 v.removeAttribute('controls'); v.loop = true; v.muted = true; v.play().catch(function(){}); 85 } 86 }; 87 if (v.readyState >= 1) decide(); else v.addEventListener('loadedmetadata', decide, { once: true }); 88 }); 89 })(); 88 90 89 91 /* Like/Boost toggle in place — POST via fetch, flip the button, stay on the page (no reload, no banner). */ … … 111 113 // actually overflows. Runs on every /news render (full load + htmx swap); a per-element flag 112 114 // prevents double-wiring. 113 wireReadMore(); 114 } 115 116 /* Short feed videos: zie de opmerking bij de aanroep in run(). */ 117 function wireGifVideos(){ 118 document.querySelectorAll('.tl-media-video').forEach(function(v){ 119 if (v.dataset.gifWired) return; v.dataset.gifWired = '1'; 120 var decide = function(){ 121 if (v.duration && v.duration <= 30) { 122 v.removeAttribute('controls'); v.loop = true; v.muted = true; v.play().catch(function(){}); 123 } 124 }; 125 if (v.readyState >= 1) decide(); else v.addEventListener('loadedmetadata', decide, { once: true }); 126 }); 127 } 128 129 function wireReadMore(){ 115 (function(){ 130 116 var _d = pageData(); var RM = _d.readMore || 'Lees meer', SL = _d.showLess || 'Toon minder'; 131 117 document.querySelectorAll('.tl-content:not(.nsfw-media):not([data-rm])').forEach(function(c){ … … 141 127 } 142 128 }); 143 } 144 145 // Paginering: items die de feed later binnenhaalt zouden de scanners missen -- 146 // init() draait per NAVIGATIE, en een pagineer-swap is er geen. Een keer, 147 // gedelegeerd; op andere pagina's vinden de scanners niets en doen ze niets. 148 document.body.addEventListener('htmx:afterSettle', function () { wireGifVideos(); wireReadMore(); }); 129 })();
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)