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>


