1! function( $ ) { 2 "use strict"; 3 4 Codevz_Plus.image = function( wpb ) { 5 6 wpb && Codevz_Plus.lightGallery( $( '#' + wpb ).closest( '.cz_wrap' ) ); 7 8 const handleStickyCaption = (e) => { 9 const container = e.currentTarget; 10 const caption = container.querySelector('.cz_image_caption'); 11 if (!caption) {return;} 12 13 if (e.type === 'mouseenter') { 14 caption.style.pointerEvents = 'none'; 15 caption.style.position = 'absolute'; 16 caption.style.top = '0'; 17 caption.style.left = '0'; 18 caption.style.transition = 'all .3s cubic-bezier(.180, .890, .330, 1.270)'; 19 20 setTimeout(() => caption.style.opacity = '1', 100); 21 } 22 23 if (e.type === 'mousemove') { 24 const rect = container.getBoundingClientRect(); 25 const x = e.clientX - rect.left; 26 const y = e.clientY - rect.top; 27 28 requestAnimationFrame(() => { 29 caption.style.transform = `translate3d(${x - 5}px, ${y + 15}px, 0)`; 30 }); 31 } 32 33 if (e.type === 'mouseleave') { 34 setTimeout( function() { 35 caption.style.opacity = '0'; 36 }, 100); 37 } 38 }; 39 40 const initStickyCaptions = () => { 41 document.querySelectorAll('.cz_image_caption_sticky').forEach(el => { 42 el.addEventListener('mouseenter', handleStickyCaption); 43 el.addEventListener('mousemove', handleStickyCaption); 44 el.addEventListener('mouseleave', handleStickyCaption); 45 }); 46 }; 47 48 initStickyCaptions(); 49 50 }; 51 52 Codevz_Plus.image(); 53 54}( jQuery );
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.