https://ex-tech.org/assets2/vendor/youtube-video-fullscreen-background/youtube-background.js?v=1.1.2
1 jQuery(document).ready(function() { 2 3 const groupElements = document.querySelectorAll('.js-vbg-group'); 4 5 for (let i = 0; i < groupElements.length; i++) { 6 const groupElement = groupElements[i]; 7 const elements = groupElement.querySelectorAll('[data-vbg]'); 8 9 for (let j = 0; j < elements.length; j++) { 10 elements[j].addEventListener('video-background-state-change', function(event) { 11 const id = event.target.getAttribute('id'); 12 console.log(id, event.detail.type, event.detail.currentState); 13 }); 14 15 elements[j].addEventListener('video-background-ready', function(event) { 16 const id = event.target.getAttribute('id'); 17 console.log('ready', id, event.detail.type, event.detail.currentState); 18 }); 19 } 20 } 21 22 jQuery('[data-vbg]').youtube_background(); 23 24 const groups = new VideoBackgroundGroups(groupElements); 25 26 for (const i in groups.instances) { 27 const group = groups.instances[i].element; 28 const vbgroup = groups.instances[i]; 29 30 const groupPrev = group.querySelector('.group-prev'); 31 const groupNext = group.querySelector('.group-next'); 32 const groupPlay = group.querySelector('.group-play'); 33 const groupPause = group.querySelector('.group-pause'); 34 const groupMute = group.querySelector('.group-mute'); 35 const groupUnmute = group.querySelector('.group-unmute'); 36 const groupFullscreen = group.querySelector('.group-fullscreen'); 37 38 groupPrev.addEventListener('click', function() { 39 vbgroup.prev(); 40 }) 41 42 groupNext.addEventListener('click', function() { 43 vbgroup.next(); 44 }) 45 46 groupPlay.addEventListener('click', function() { 47 vbgroup.play(); 48 }) 49 50 groupPause.addEventListener('click', function() { 51 vbgroup.pause(); 52 }) 53 54 groupMute.addEventListener('click', function() { 55 vbgroup.mute(); 56 }) 57 58 groupUnmute.addEventListener('click', function() { 59 vbgroup.unmute(); 60 }) 61 62 groupFullscreen.addEventListener('click', function() { 63 console.log(vbgroup.currentElement.closest('.js-vbg-group')); 64 vbgroup.currentElement.closest('.js-vbg-group').webkitRequestFullscreen(); 65 }) 66 } 67 }); 68 69 const vbgs = document.querySelectorAll('[data-vbg]'); 70 //for (let i = 0; i < vbgs.length; i++) { 71 //vbgs[i].addEventListener('video-background-state-change', function(event) { 72 //const id = event.target.getAttribute('id'); 73 //console.log(id, event.detail.type, event.detail.currentState); 74 //}); 75 76 /* 77 vbgs[i].addEventListener('video-background-time-update', function(event) { 78 const id = event.target.getAttribute('id'); 79 console.log(id, event.detail.type, event.detail.percentComplete); 80 }); 81 */ 82 //} 83 84 const srcChangeButtons = document.querySelectorAll('.src-change-button'); 85 86 for (let i = 0; i < srcChangeButtons.length; i++) { 87 srcChangeButtons[i].addEventListener('click', function(event) { 88 const target = event.target; 89 const src = target.getAttribute('data-src'); 90 const vbgElem = target.closest('.example-marquee').querySelector('[data-vbg]'); 91 if (!vbgElem) return; 92 const uid = vbgElem.getAttribute('data-vbg-uid'); 93 if (!uid) return; 94 95 window.VIDEO_BACKGROUNDS.index[uid].setSource(src); 96 }) 97 } 98 99 const destroyBtns = document.querySelectorAll('.vbg-destroy'); 100 for (let i = 0; i < destroyBtns.length; i++) { 101 destroyBtns[i].addEventListener('click', function(event) { 102 const target = event.target; 103 const selector = target.getAttribute('data-selector'); 104 const vbgElem = document.querySelector(selector); 105 window.VIDEO_BACKGROUNDS.destroy(vbgElem); 106 }) 107 } 108 109 const initBtns = document.querySelectorAll('.vbg-initialize'); 110 for (let i = 0; i < initBtns.length; i++) { 111 initBtns[i].addEventListener('click', function(event) { 112 const target = event.target; 113 const selector = target.getAttribute('data-selector'); 114 const src = target.getAttribute('data-src'); 115 const vbgElem = document.querySelector(selector); 116 117 if (!vbgElem) return; 118 if (vbgElem.getAttribute('data-vbg-uid')) window.VIDEO_BACKGROUNDS.destroy(vbgElem); 119 120 if (src) { 121 vbgElem.setAttribute('data-vbg', src); 122 } 123 window.VIDEO_BACKGROUNDS.add(vbgElem); 124 }) 125 } 126
127 const seekInputs = document.querySelectorAll('.seek-bar-wrapper'); 128 for (let i = 0; i < seekInputs.length; i++) { 129 new SeekBar(seekInputs[i]); 130 } 131 132 const playToggle = document.querySelectorAll('.toggle-play-button'); 133 for (let i = 0; i < playToggle.length; i++) { 134 new PlayToggle(playToggle[i]); 135 } 136 137 const muteToggle = document.querySelectorAll('.toggle-mute-button'); 138 for (let i = 0; i < muteToggle.length; i++) { 139 new MuteToggle(muteToggle[i]); 140 }
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.