کدهای js:
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
var $ = jQuery;
$(window).on('load scroll resize', function(){
$('.cwp-card-portfolio').each(function(){
var $this = $(this),
sectionHeight = $this.outerHeight(),
windowHeight = $(window).height(),
scrollValue = $(window).scrollTop() - $this.offset().top + windowHeight,
bottomPassValue = $(window).scrollTop() - $this.offset().top - sectionHeight,
easeSpeed = 3,
easeValue;
if( $(window).width() > 767 ){
if(scrollValue < 0 || bottomPassValue > 0) return;
easeValue = 1 - 1/Math.pow(2, scrollValue*easeSpeed/sectionHeight);
$this.find('.cwp-card-portfolio-image-left').css('transform', 'translateX(calc(' + (-1*easeValue) + '* var(--maximum-move))) rotate(calc(' + (-1*easeValue) + '*var(--maximum-rotate)))');
$this.find('.cwp-card-portfolio-image-right').css('transform', 'translateX(calc(' + (1*easeValue) + '* var(--maximum-move))) rotate(calc(' + (1*easeValue) + '*var(--maximum-rotate)))');
}else{
$this.removeClass('passed');
if( scrollValue - windowHeight*1/2 > 0 ) $this.addClass('passed');
}
});
});
$(document).ready(function(){
$('.cwp-email-box .elementor-widget-container').hover(function(){
$('.cwp-email-copy').addClass('copy');
}, function(){
$('.cwp-email-copy').removeClass('copy copied');
});
$('.cwp-email-box .elementor-widget-container').on('click', function(){
navigator.clipboard.writeText($('.cwp-email-box').text());
$('.cwp-email-copy').addClass('copied');
});
});
</script>
کدهای css:
<style>
.cwp-card-portfolio{
--image-height: 77vh;
--image-width: 62vh;
--maximum-move: 80vh;
--maximum-rotate: 6deg;
}
.cwp-gradient{
--gradient-color-1: #302a27;
--gradient-color-2: #965f39;
--gradient-color-3: #e1a57d;
--gradient-color-4: #afd3ec;
--gradient-color-5: #445f88;
}
/* Tablet Device */
@media (max-width: 1024px){
.cwp-card-portfolio{
--image-height: 77vh;
--image-width: 62vh;
--maximum-move: 65vh;
--maximum-rotate: 6deg;
}
}
/* Mobile Device */
@media (max-width: 767px){
.cwp-card-portfolio{
--image-height: 450px;
--image-width: 375px;
--maximum-move: 350px;
--maximum-rotate: 3deg;
}
}
html, body{
overflow-x: hidden;
}
.elementor-edit-area .animated {
animation-fill-mode: forwards!important;
}
.cwp-card-portfolio-image-left,
.cwp-card-portfolio-image-right{
will-change: transform;
}
.cwp-card-portfolio-image-left img,
.cwp-card-portfolio-image-right img{
width: var(--image-width);
height: var(--image-height);
object-fit: cover;
}
/* CSS code for gradient background */
.cwp-gradient .elementor-widget-container{
background: var(--gradient-color-1,#fff);
background: linear-gradient(90deg, var(--gradient-color-1,#fff) 0%, var(--gradient-color-2,#fff) 25%, var(--gradient-color-3,#fff) 50%, var(--gradient-color-4,#fff) 75%, var(--gradient-color-5,#fff) 100%);
}
.cwp-gradient.elementor-widget-heading .elementor-widget-container{
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
/* CSS code for bottom email box */
.cwp-email-box .elementor-widget-container{
cursor: pointer;
}
.cwp-email-box .elementor-heading-title{
transition: all 0.2s ease-in-out;
word-break: break-all;
text-align: center;
}
.cwp-email-box .elementor-widget-container:hover .elementor-heading-title{
transform: scale(0.98);
}
.cwp-email-copy{
height: var(--min-height,22px);
}
.cwp-email-copy .e-con-inner{
height: auto;
}
.cwp-email-copy .elementor-widget{
transition: all 0.2s ease-in-out;
}
.cwp-email-copy.copy .elementor-widget{
transform: translateY(-100%);
}
.cwp-email-copy.copied .elementor-widget{
transform: translateY(-200%);
}
/* CSS code for improving entrance animation */
.fadeInUp {
animation: cwpFadeInUp 1s ease-in-out forwards !important;
}
.fadeIn {
animation: fadeIn 1.3s ease-in-out 0.5s forwards !important;
opacity: 0;
}
@keyframes cwpFadeInUp{
0%{
transform: translateY(50px);
opacity: 0;
clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
}
100%{
transform: translateY(0);
opacity: 1;
clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
}
}
@media (max-width: 767px){
.cwp-card-portfolio-image-left{
transition: all 0.6s ease-in-out;
transform: translateX(-30px) rotate(-1deg) !important;
}
.cwp-card-portfolio-image-right{
transition: all 0.6s ease-in-out;
transform: translateX(30px) rotate(1deg) !important;
}
.cwp-card-portfolio.passed .cwp-card-portfolio-image-left{
transition: all 0.8s ease-in-out;
transform: translateX(calc(-1*var(--maximum-move))) rotate(calc(-1*var(--maximum-rotate))) !important;
}
.cwp-card-portfolio.passed .cwp-card-portfolio-image-right{
transition: all 0.8s ease-in-out;
transform: translateX(calc(1*var(--maximum-move))) rotate(calc(1*var(--maximum-rotate))) !important;
}
}
</style>