وب

تو

نت

طراحی سایت در تهران

برای طراحی سایت در تهران با ما تماس بگیرید

کدهای مورد استفاده برای مقایسه دو عکس

سلام
با استفاده از کدهای زیر می توان دو عکس را به راحتی نمایش و مقایسه کرد.
کد html

کد css
.cd-image-container {
width: 97%;max-width: 768px;margin: 0em auto;}.cd-image-container img {display: block;}
.cd-image-label {position: absolute;font-weight: 500;letter-spacing: 1px;top: 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;}.cd-image-label.is-hidden {visibility: hidden;}.is-visible .cd-image-label {opacity: 1;-webkit-transform: translateY(0);-moz-transform: translateY(0);-ms-transform: translateY(0);-o-transform: translateY(0);transform: translateY(0);}
.cd-resize-img {position: absolute;top: 0;left: 0;width: 0;height: 100%;overflow: hidden;/* Force Hardware Acceleration in WebKit */-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;}.cd-resize-img img {position: absolute;left: 0;top: 0;display: block;height: 100%;width: auto;max-width: none;}.cd-resize-img .cd-image-label {right: auto;left: 0;}.is-visible .cd-resize-img {width: 49%;/* bounce in animation of the modified image */-webkit-animation: cd-bounce-in 0.7s;-moz-animation: cd-bounce-in 0.7s;animation: cd-bounce-in 0.7s;}
@-webkit-keyframes cd-bounce-in {0% {width: 0;}60% {width: 55%;}100% {width: 50%;}}@-moz-keyframes cd-bounce-in {0% {width: 0;}60% {width: 55%;}100% {width: 50%;}}@keyframes cd-bounce-in {0% {width: 0;}60% {width: 55%;}100% {width: 50%;}}.cd-handle {position: absolute;height: 44px;width: 44px;/* center the element */left: 50%;top: 50%;margin-left: -22px;margin-top: -22px;border-radius: 50%;cursor: move;box-shadow: 0 0 0 6px rgba(0, 0, 0, 0.2), 0 0 10px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.3);opacity: 0;-webkit-transform: translate3d(0, 0, 0) scale(0);-moz-transform: translate3d(0, 0, 0) scale(0);-ms-transform: translate3d(0, 0, 0) scale(0);-o-transform: translate3d(0, 0, 0) scale(0);transform: translate3d(0, 0, 0) scale(0);}.cd-handle.draggable {/* change background color when element is active */background-color: #445b7c;}.is-visible .cd-handle {opacity: 1;-webkit-transform: translate3d(0, 0, 0) scale(1);-moz-transform: translate3d(0, 0, 0) scale(1);-ms-transform: translate3d(0, 0, 0) scale(1);-o-transform: translate3d(0, 0, 0) scale(1);transform: translate3d(0, 0, 0) scale(1);-webkit-transition: -webkit-transform 0.3s 0.7s, opacity 0s 0.7s;-moz-transition: -moz-transform 0.3s 0.7s, opacity 0s 0.7s;transition: transform 0.3s 0.7s, opacity 0s 0.7s;}
کد js

jQuery(document).ready(function($){
var dragging = false,
scrolling = false,
resizing = false;
//cache jQuery objects
var imageComparisonContainers = $(‘.cd-image-container’);
//check if the .cd-image-container is in the viewport
//if yes, animate it
checkPosition(imageComparisonContainers);
$(window).on(‘scroll’, function(){
if( !scrolling) {
scrolling = true;
( !window.requestAnimationFrame )
? setTimeout(function(){checkPosition(imageComparisonContainers);}, 100)
: requestAnimationFrame(function(){checkPosition(imageComparisonContainers);});
}
});//make the .cd-handle element draggable and modify .cd-resize-img width according to its position
imageComparisonContainers.each(function(){
var actual = $(this);
drags(actual.find(‘.cd-handle’), actual.find(‘.cd-resize-img’), actual, actual.find(‘.cd-image-label[data-type=”original”]’), actual.find(‘.cd-image-label[data-type=”modified”]’));
});
//upadate images label visibility$(window).on(‘resize’, function(){if( !resizing) {resizing = true;( !window.requestAnimationFrame )? setTimeout(function(){checkLabel(imageComparisonContainers);}, 100): requestAnimationFrame(function(){checkLabel(imageComparisonContainers);});}});
function checkPosition(container) {container.each(function(){var actualContainer = $(this);if( $(window).scrollTop() + $(window).height()*0.5 > actualContainer.offset().top) {actualContainer.addClass(‘is-visible’);}});
scrolling = false;}
function checkLabel(container) {container.each(function(){var actual = $(this);updateLabel(actual.find(‘.cd-image-label[data-type=”modified”]’), actual.find(‘.cd-resize-img’), ‘left’);updateLabel(actual.find(‘.cd-image-label[data-type=”original”]’), actual.find(‘.cd-resize-img’), ‘right’);});
resizing = false;}
//draggable funtionality – credits to http://css-tricks.com/snippets/jquery/draggable-without-jquery-ui/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) {if( !dragging) {dragging = true;( !window.requestAnimationFrame )? setTimeout(function(){animateDraggedHandle(e, xPosition, dragWidth, minLeft, maxLeft, containerOffset, containerWidth, resizeElement, labelContainer, labelResizeElement);}, 100): requestAnimationFrame(function(){animateDraggedHandle(e, xPosition, dragWidth, minLeft, maxLeft, containerOffset, containerWidth, resizeElement, labelContainer, labelResizeElement);});}}).on(“mouseup vmouseup”, function(e){dragElement.removeClass(‘draggable’);resizeElement.removeClass(‘resizable’);});e.preventDefault();}).on(“mouseup vmouseup”, function(e) {dragElement.removeClass(‘draggable’);resizeElement.removeClass(‘resizable’);});}
function animateDraggedHandle(e, xPosition, dragWidth, minLeft, maxLeft, containerOffset, containerWidth, resizeElement, labelContainer, labelResizeElement) {var leftValue = e.pageX + xPosition – dragWidth;//constrain the draggable element to move inside his containerif(leftValue < minLeft ) { leftValue = minLeft; } else if ( leftValue > maxLeft) {leftValue = maxLeft;}
var widthValue = (leftValue + dragWidth/2 – containerOffset)*100/containerWidth+’%’;
$(‘.draggable’).css(‘left’, widthValue).on(“mouseup vmouseup”, function() {$(this).removeClass(‘draggable’);resizeElement.removeClass(‘resizable’);});
$(‘.resizable’).css(‘width’, widthValue);
updateLabel(labelResizeElement, resizeElement, ‘left’);updateLabel(labelContainer, resizeElement, ‘right’);dragging = false;}
function updateLabel(label, resizeElement, position) {if(position == ‘left’) {( label.offset().left + label.outerWidth() < resizeElement.offset().left + resizeElement.outerWidth() ) ? label.removeClass(‘is-hidden’) : label.addClass(‘is-hidden’) ; } else { ( label.offset().left > resizeElement.offset().left + resizeElement.outerWidth() ) ? label.removeClass(‘is-hidden’) : label.addClass(‘is-hidden’) ;}}});