Bilde pirms un pēc

by Antikrists

HTML

<figure class="cImg-image-container"><img src="https://i.pinimg.com/originals/c6/5d/3b/c65d3b95a80e97722d8c3fae43d69e9a.jpg" alt="Original Image"> 
 <span class="cImg-image-label" data-type="original">Pēc</span> 
 <div class="cImg-resize-img"> 
 <img src="https://i.pinimg.com/736x/91/0d/d5/910dd5472986e9b1c0bbb00d403df88b--interesting-history-interesting-facts.jpg" alt="Modified Image"> 
 <span class="cImg-image-label" data-type="modified">Pirms</span> 
 </div> 
 <span class="cImg-handler"></span> 
 </figure>

CSS

img { 
 
        max-width: 100%; 
 
 } 
 
 .cImg-image-container { 
 
        position: relative; 
 
        width: 100%; 
 
        max-width: 640px; 
 
        margin: 0; 
 
 } 
 
 .cImg-image-container img { 
 
        display: block; 
 
 } 
 
 .cImg-image-label { 
 
        position: absolute; 
 
        bottom: 0; 
 
        right: 0; 
 
        color: #ffffff; 
 
        padding: 1em; 
 
        -webkit-font-smoothing: antialiased; 
 
        -moz-osx-font-smoothing: grayscale; 
 
        opacity: 0; 
 
        -webkit-transform: translateY(20px); -moz-transform: translateY(20px); -ms-transform: translateY(20px); -o-transform: translateY(20px); transform: translateY(20px); -webkit-transition: -webkit-transform 0.3s 0.7s, opacity 0.3s 0.7s; 
 
        -moz-transition: -moz-transform 0.3s 0.7s, opacity 0.3s 0.7s; 
 
        transition: transform 0.3s 0.7s, opacity 0.3s 0.7s; 
 
 } 
 
 .cImg-image-label.is-hidden { 
 
        visibility: hidden; 
 
 } 
 
 .is-visible .cImg-image-label { 
 
        opacity: 1; 
 
        -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0); transform: translateY(0);} 
 
               
 
 .cImg-resize-img { 
 
        position: absolute; 
 
        top: 0; 
 
        left: 0; 
 
        width:0; 
 
        height: 100%; 
 
        overflow: hidden; 
 
        -webkit-transform: translateZ(0); -moz-transform: translateZ(0); -ms-transform: translateZ(0); -o-transform: translateZ(0); transform: translateZ(0); -webkit-backface-visibility: hidden; 
 
        backface-visibility: hidden; 
 
 } 
 
 .cImg-resize-img img { 
 
        position: relative; 
 
        left: 0; 
 
        top: 0; 
 
        display: block; 
 
        height: 100%; 
 
        width: auto; 
 
        max-width: none; 
 
 } 
 
 .cImg-resize-img .cImg-image-label { 
 
        right: auto; 
 
        left: 0; 
 
 } 
 
 .is-visible .cImg-resize-img { 
 
        width: 50%; 
 
       ...

JavaScript

jQuery(document).ready(function($){ //check if the .cImg-image-container is in the viewport        
 
        //if yes, animate it 
 
        checkPosition($('.cImg-image-container')); $(window).on('scroll', function(){ checkPosition($('.cImg-image-container')); }); 
 
               
 
        //make the .cImg-handler element draggable and modify .cImg-resize-img width according to its position 
 
        $('.cImg-image-container').each(function(){ var actual = $(this); 
 
        drags(actual.find('.cImg-handler'), actual.find('.cImg-resize-img'), actual, actual.find('.cImg-image-label[data-type="original"]'), actual.find('.cImg-image-label[data-type="modified"]')); }); 
 
        //upadate images label visibility 
 
        $(window).on('resize', function(){ $('.cImg-image-container').each(function(){ var actual = $(this); 
 
        updateLabel(actual.find('.cImg-image-label[data-type="modified"]'), actual.find('.cImg-resize-img'), 'left'); updateLabel(actual.find('.cImg-image-label[data-type="original"]'), actual.find('.cImg-resize-img'), 'right'); }); 
 
        }); 
 
 }); 
 
 function checkPosition(container) { container.each(function(){ var actualContainer = $(this); 
 
        if( $(window).scrollTop() + $(window).height()*0.5 > actualContainer.offset().top) { actualContainer.addClass('is-visible'); } 
 
        }); 
 
 } 
 
 // 
 
 function drags(dragElement, resizeElement, container, labelContainer, labelResizeElement) { dragElement.on("mousedown vmousedown", function(e) { dragElement.addClass('draggable'); resizeElement.addClass('resizable'); var dragWidth = dragElement.outerWidth(), xPosition = dragElement.offset().left + dragWidth - e.pageX, containerOffset = container.offset().left, containerWidth = container.outerWidth(), minLeft = containerOffset + 10, 
 
        maxLeft = containerOffset + containerWidth - dragWidth - 10; 
 
               
 
        dragElement.parents().on("mousemove vmousemove", function(e) { leftValue = e.pageX + xPosition...