Want to get this as ready made template with just 1 CLICK INSTALL?
Code Snippet for Table Image Hover Effect:
<style> .mdw-table-portfolio .mdw-table-hover-images{ height: var(--min-height,250px); transform: translate(-50%, -50%) scale(0); pointer-events: none; transition: none; } .mdw-table-portfolio .mdw-table-hover-images.anim-initial{ transition: transform 0.2s; } .mdw-table-portfolio .mdw-table-hover-images.showing{ transform: translate(-50%, -50%) scale(1); } .mdw-table-portfolio .mdw-table-hover-images-inner{ transition: 0s; } .mdw-table-portfolio .mdw-table-hover-images.anim .mdw-table-hover-images-inner{ transition: 0.3s ease-in-out; } .mdw-table-portfolio p{ margin-bottom: 0; } @media(min-width: 768px){ .mdw-table-portfolio .mdw-table-portfolio-main .elementor-widget-image{ display: none; } } </style> <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script> <script> if(!MDWNonce105){ var MDWNonce105 = true $(document).ready(function(){ var mouseY, mouseX function moveContainer(e){ mouseX = e.clientX mouseY = e.clientY if(!$(e.target).is('.mdw-table-portfolio-main') && $(e.target).closest('.mdw-table-portfolio-main').length){ $(e.target).closest('.mdw-table-portfolio').find('.mdw-table-hover-images') .addClass('showing') .css({ 'left': `${mouseX}px`, 'top': `${mouseY}px` }) setTimeout(function(){ $(e.target).closest('.mdw-table-portfolio').find('.mdw-table-hover-images').addClass('anim') },100) }else{ $('.mdw-table-hover-images').removeClass('showing anim') } } $(window).on('mousemove', moveContainer) function moveImage(el, index){ var imageHeight = el.find('.elementor-widget-image').eq(0).height() el.find('.mdw-table-hover-images-inner').css('transform',`translateY(-${index * imageHeight}px)`) } $('.mdw-table-portfolio').each(function(index){ var $this = $(this) $(this).find('.mdw-table-portfolio-main, .mdw-table-portfolio-main > .e-con-inner').children('.e-con, .e-container').on('mousemove',function(e){ moveImage($this, $(this).index()) }) }) function setImageOnScroll(e){ $('.mdw-table-portfolio').each(function(){ var $this = $(this), imageContainer = $this.find('.mdw-table-hover-images'), tableOffset = $this.find('.mdw-table-portfolio-main')[0].getBoundingClientRect() if(tableOffset.top < mouseY && tableOffset.bottom > mouseY && tableOffset.left < mouseX && tableOffset.right > mouseX){ imageContainer .addClass('showing') .css({ 'left': `${mouseX}px`, 'top' : `${mouseY}px` }) setTimeout(function(){ imageContainer.addClass('anim') },100) }else { imageContainer.removeClass('showing anim') } $this.find('.mdw-table-portfolio-main, .mdw-table-portfolio-main > .e-con-inner').children('.e-con, .e-container').each(function(){ var rowOffset = $(this)[0].getBoundingClientRect() if(rowOffset.top < mouseY && rowOffset.bottom > mouseY){ moveImage($this, $(this).index()) } }) }) } $(document).on('scroll', setImageOnScroll) function init(){ $('.mdw-table-portfolio').each(function(){ var imageInner = $('<div class="mdw-table-hover-images-inner"></div>'), imageContainer = $(this).find('.mdw-table-hover-images'), images = $(this).find('.elementor-widget-image').clone() imageContainer.append(imageInner) imageInner.append(images) setTimeout(function(){ imageContainer.addClass('anim-initial') }, 200) }) } init() }) } </script>