JavaScript (jQuery)
$(function(){ $('.slider-item').eq(0).addClass('active'); var total = $('.slider-item').length; var current = 0; $('#moveRight').on('click', function(){ var next=current; current= current+1; setSlide(next, current); }); $('#moveLeft').on('click', function(){ var prev=current; current = current- 1; setSlide(prev, current); }); function setSlide(prev, next){ var slide= current; if(next>total-1){ slide=0; current=0; } if(next<0){ slide=total - 1; current=total - 1; } $('.slider-item').eq(prev).removeClass('active'); $('.slider-item').eq(slide).addClass('active'); setTimeout(function(){ },800); } });
Html
<div class="slider-section"> <div class="slider main"> <div class="slider__nav"> <span id="moveLeft" class="slider__arrow"> <svg class="slider__icon" width="24" height="24" viewBox="0 0 24 24"> <path d="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z"></path> </svg> </span> <span id="moveRight" class="slider__arrow"> <svg class="slider__icon" width="24" height="24" viewBox="0 0 24 24"> <path d="M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z"></path> </svg> </span> </div> <?php $args = array('posts_per_page' => 3,); $recent = new WP_Query($args); while( $recent -> have_posts()) : $recent -> the_post(); ?> <div class="slider-item slider-item--1"> <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"> <div class="slider-item__image"><?php the_post_thumbnail( 'post_thumbnail' ); ?></div> <div class="slider-item__info"> <div class="slider-item__container"> <h2 class="slider-item__subtitle"><?php the_category() ?> </h2> <h1 class="slider-item__title"><?php the_title() ?></h1> <p class="slider-item__description"><?php the_excerpt() ?></p> </div> </div> </a> </div> <?php endwhile; ?> </div> </div>
CSS
.slider-section { margin: 0; padding: 0; width: 100%; height: 550px; display: flex; display: -webkit-flex; justify-content: center; -webkit-justify-content: center; align-items: center; -webkit-align-items: center; } .slider.main { overflow: visible; } .slider { width: 100%; height: 100%; display: flex; max-width: 890px; max-height: 540px; overflow: visible; position: absolute; background: #fff; } .slider-item { visibility: visible; display: flex; width: 100%; height: 100%; align-items: center; justify-content: flex-end; -webkit-align-items: center; -webkit-justify-content: flex-end; position: relative; /* background-color: #fff; */ flex-shrink: 0; -webkit-flex-shrink: 0; position: absolute; z-index: 0; /* transition: 1s all ease-out; */ } .slider-item__info { height: auto; display: flex; justify-content: center; flex-direction: column; display: -webkit-flex; -webkit-justify-content: center; -webkit-flex-direction: column; right: -50px; margin: auto; padding: 10px 40px; width: 40%; position: absolute; background: #fff; z-index: 1; box-shadow: 0 0 10px 0 #dbdbdb; visibility: hidden; } .slider-item__image { width: 100%; height: 100%; align-self: flex-end; flex-basis: 100%; -webkit-align-self: flex-end; -webkit-flex-basis: 100%; position: relative; /* transform: translateX(100%); */ /* transition: 1s all ease-in-out; */ } .slider-item__subtitle { letter-spacing: 3px; font-size: 10px; text-transform: uppercase; margin: 0; color: #7E7E7E; font-weight: 700; /* transform: translateY(25%); */ opacity: 0; visibility: hidden; /* transition: 1s all ease-in-out; */ } .slider-item__title { margin: 15px 0 0 0; font-size: 44px; line-height: 45px; letter-spacing: 3px; font-weight: 700; color: #2C2C2C; transform: translateY(25%); opacity: 0; visibility: hidden; transition: 1s all ease-in-out; } .slider-item__description { /* transform: translateY(25%); */ opacity: 0; visibility: hidden; transition: 1s all ease-out; margin-top: 35px; font-size: 13px; color: #7e7e7e; line-height: 22px; margin-bottom: 35px; } .slider__nav { position: absolute; right: 10px; z-index: 2; background-color: #fff; bottom: 10px; } .slider__icon { display: inline-block; vertical-align: middle; width: 16px; fill: #5d5d5d; } .slider__arrow { cursor: pointer; display: inline-block; padding: 11px 15px; position: relative; } .slider__arrow:nth-child(1):after { content: ''; right: -3px; position: absolute; width: 1px; background-color: #b0b0b0; height: 14px; top: 50%; margin-top: -7px; } .active { z-index: 1; display: flex; visibility: visible; } .active .slider-item__subtitle, .active .slider-item__title, .active .slider-item__description, .active .slider-item__btn { transform: translateY(0); opacity: 1; transition: 1s all ease-in-out; visibility: visible; } .active .slider-item__image { transition: 1s all ease-in-out; transform: translateX(0); -webkit-animation-name: fadeInLeft; animation-name: fadeInLeft; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-fill-mode: both; animation-fill-mode: both; visibility: hidden; z-index: 1; } .active .slider-item__info { transition: 1s all ease-in-out; transform: translateX(0); -webkit-animation-name: fadeInRight; animation-name: fadeInRight; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-fill-mode: both; animation-fill-mode: forwards; visibility: hidden; z-index: 1; } @-webkit-keyframes fadeInRight { from { opacity: 0; -webkit-transform: translate3d(10%, 0, 0); transform: translate3d(10%, 0, 0); visibility: hidden; } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); visibility: visible; } } @keyframes fadeInRight { from { opacity: 0; -webkit-transform: translate3d(10%, 0, 0); transform: translate3d(10%, 0, 0); visibility: hidden; } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); visibility: visible; } } @-webkit-keyframes fadeInLeft { from { opacity: 0; -webkit-transform: translate3d(-10%, 0, 0); transform: translate3d(-10%, 0, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); visibility: visible; } } @keyframes fadeInLeft { from { opacity: 0; -webkit-transform: translate3d(-10%, 0, 0); transform: translate3d(-10%, 0, 0); } to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); visibility: visible; } } @media (max-width: 425px) { .slider.main { padding: 0; margin: 0; } .slider-item { flex-direction: column; } .slider-item__info { position: initial; padding: 1rem; width: 100%; height: 100%; border: 1px solid #bbb; box-shadow: 1px 1px 1px 1px #bbb; } .slider-item__image img { width: 100vw; height: 225px; } } @media (min-width: 768px) { .slider.main { width: 85%; } .slider-item__image img { width: 100vw; max-height: 550px; } }