var playing=0; var cells = document.querySelectorAll("[id^='media']"); for (var i = 0; i < cells.length; i++) { cells[i].addEventListener('mouseenter', DoTheThing, {passive: true}, false); cells[i].addEventListener('touchstart', DoTheThing, {passive: true}, false); cells[i].addEventListener('mouseleave', BringBack, {passive: true}, false); } function DoTheThing() { if (playing==this.id) { BringBack(); return; } var elem=document.getElementById('preview-video'); if (elem!=null) { BringBack(); elem=null; } if (elem==null) { const video = document.createElement('video'); video.autoplay = "true"; video.preload = "true"; video.loop="true"; video.muted = true; video.id = "preview-video"; video.setAttribute("muted", "true"); video.setAttribute("playsinline", "true"); video.setAttribute("type", "video/mp4"); video.setAttribute("src", this.getAttribute('data-video')); $img = this.getElementsByTagName('img')[0].src; video.setAttribute("style","display : block; background : url(/js/load_bar_preview.gif) center 98% / 96% 4px no-repeat, url("+ $img +") center center / 99% 99% no-repeat"); document.getElementById(this.id).appendChild(video); document.getElementById(this.id).getElementsByTagName('img')[0].style.display = 'none'; video.load(); playing=this.id; } } function BringBack() { if (document.getElementById("preview-video")!=null ) { document.getElementById("preview-video").remove(); document.getElementById(playing).getElementsByTagName('img')[0].style.display = 'block'; playing=0; } }