A Pen by Stan Williams on CodePen.
Created
May 1, 2024 02:42
-
-
Save stanwmusic/ed68c9da65aa845dfcf9d232e0046dce to your computer and use it in GitHub Desktop.
Responsive Image Carousel ( Animation )
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<main> | |
<ul class='slider'> | |
<li class='item' style="background-image: url('https://cdn.mos.cms.futurecdn.net/dP3N4qnEZ4tCTCLq59iysd.jpg')"> | |
<div class='content'> | |
<h2 class='title'>"RESPONSIVE IMAGE GALLERY"</h2> | |
<p class='description'> Lorem ipsum, Snuffsum Dipsum | |
dolor sit amet sit boy sit consectetur | |
adipisicing elit. Tempore fuga voluptatum, iure corporis inventorey bloney samwich | |
praesentium nisi. Id laboriosam ipsam enim. </p> | |
<button>Read More</button> | |
</div> | |
</li> | |
<li class='item' style="background-image: url('https://i.redd.it/tc0aqpv92pn21.jpg')"> | |
<div class='content'> | |
<h2 class='title'>"This is a TITLE"</h2> | |
<p class='description'> Lorem ipsum, dolor sit amet consectetur | |
adipisicing elit. Tempore fuga voluptatum, iure corporis inventore | |
praesentium nisi. Id laboriosam ipsam enim. </p> | |
<button>Read More</button> | |
</div> | |
</li> | |
<li class='item' style="background-image: url('https://wharferj.files.wordpress.com/2015/11/bio_north.jpg')"> | |
<div class='content'> | |
<h2 class='title'>"The Gate Keeper"</h2> | |
<p class='description'> Lorem ipsum, dolor sit amet consectetur | |
adipisicing elit. Tempore fuga voluptatum, iure corporis inventore | |
praesentium nisi. Id laboriosam ipsam enim. </p> | |
<button>Read More or less</button> | |
</div> | |
</li> | |
<li class='item' style="background-image: url('https://images7.alphacoders.com/878/878663.jpg')"> | |
<div class='content'> | |
<h2 class='title'>"Last Trace Of Us"</h2> | |
<p class='description'> | |
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Tempore fuga voluptatum, iure corporis inventore praesentium nisi. Id laboriosam ipsam enim. | |
</p> | |
<button>Read More</button> | |
</div> | |
</li> | |
<li class='item' style="background-image: url('https://theawesomer.com/photos/2017/07/simon_stalenhag_the_electric_state_6.jpg')"> | |
<div class='content'> | |
<h2 class='title'>"Urban Decay"</h2> | |
<p class='description'> | |
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Tempore fuga voluptatum, iure corporis inventore praesentium nisi. Id laboriosam ipsam enim. | |
</p> | |
<button>Read More</button> | |
</div> | |
</li> | |
<li class='item' style="background-image: url('https://da.se/app/uploads/2015/09/simon-december1994.jpg')"> | |
<div class='content'> | |
<h2 class='title'>"The Migration"</h2> | |
<p class='description'> Lorem ipsum, dolor sit amet consectetur | |
adipisicing elit. Tempore fuga voluptatum, iure corporis inventore | |
praesentium nisi. Id laboriosam ipsam enim. </p> | |
<button>Read More</button> | |
</div> | |
</li> | |
</ul> | |
<nav class='nav'> | |
<ion-icon class='btn prev' name="arrow-back-outline"></ion-icon> | |
<ion-icon class='btn next' name="arrow-forward-outline"></ion-icon> | |
</nav> | |
</main> | |
<script type="module" src="https://unpkg.com/[email protected]/dist/ionicons/ionicons.esm.js"></script> | |
<script nomodule src="https://unpkg.com/[email protected]/dist/ionicons/ionicons.js"></script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const slider = document.querySelector('.slider'); | |
function activate(e) { | |
const items = document.querySelectorAll('.item'); | |
e.target.matches('.next') && slider.append(items[0]) | |
e.target.matches('.prev') && slider.prepend(items[items.length-1]); | |
} | |
document.addEventListener('click',activate,false); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* { | |
margin: 0; | |
padding: 0; | |
box-sizing: border-box; | |
} | |
body { | |
height: 100vh; | |
display: grid; | |
place-items: center; | |
overflow: hidden; | |
} | |
main { | |
position: relative; | |
width: 100%; | |
height: 100%; | |
box-shadow: 0 3px 10px rgba(0,0,0,0.3); | |
} | |
.item { | |
width: 200px; | |
height: 300px; | |
list-style-type: none; | |
position: absolute; | |
top: 50%; | |
transform: translateY(-50%); | |
z-index: 1; | |
background-position: center; | |
background-size: cover; | |
border-radius: 20px; | |
box-shadow: 0 20px 30px rgba(255,255,255,0.3) inset; | |
transition: transform 0.1s, left 0.75s, top 0.75s, width 0.75s, height 0.75s; | |
&:nth-child(1), &:nth-child(2) { | |
left: 0; | |
top: 0; | |
width: 100%; | |
height: 100%; | |
transform: none; | |
border-radius: 0; | |
box-shadow: none; | |
opacity: 1; | |
} | |
&:nth-child(3) { left: 50%; } | |
&:nth-child(4) { left: calc(50% + 220px); } | |
&:nth-child(5) { left: calc(50% + 440px); } | |
&:nth-child(6) { left: calc(50% + 660px); opacity: 0; } | |
} | |
.content { | |
width: min(30vw,400px); | |
position: absolute; | |
top: 50%; | |
left: 3rem; | |
transform: translateY(-50%); | |
font: 400 0.85rem helvetica,sans-serif; | |
color: white; | |
text-shadow: 0 3px 8px rgba(0,0,0,0.5); | |
opacity: 0; | |
display: none; | |
& .title { | |
font-family: 'arial-black'; | |
text-transform: uppercase; | |
} | |
& .description { | |
line-height: 1.7; | |
margin: 1rem 0 1.5rem; | |
font-size: 0.8rem; | |
} | |
& button { | |
width: fit-content; | |
background-color: rgba(0,0,0,0.1); | |
color: white; | |
border: 2px solid white; | |
border-radius: 0.25rem; | |
padding: 0.75rem; | |
cursor: pointer; | |
} | |
} | |
.item:nth-of-type(2) .content { | |
display: block; | |
animation: show 0.75s ease-in-out 0.3s forwards; | |
} | |
@keyframes show { | |
0% { | |
filter: blur(5px); | |
transform: translateY(calc(-50% + 75px)); | |
} | |
100% { | |
opacity: 1; | |
filter: blur(0); | |
} | |
} | |
.nav { | |
position: absolute; | |
bottom: 2rem; | |
left: 50%; | |
transform: translateX(-50%); | |
z-index: 5; | |
user-select: none; | |
& .btn { | |
background-color: rgba(255,255,255,0.5); | |
color: rgba(0,0,0,0.7); | |
border: 2px solid rgba(0,0,0,0.6); | |
margin: 0 0.25rem; | |
padding: 0.75rem; | |
border-radius: 50%; | |
cursor: pointer; | |
&:hover { | |
background-color: rgba(255,255,255,0.3); | |
} | |
} | |
} | |
@media (width > 650px) and (width < 900px) { | |
.content { | |
& .title { font-size: 1rem; } | |
& .description { font-size: 0.7rem; } | |
& button { font-size: 0.7rem; } | |
} | |
.item { | |
width: 160px; | |
height: 270px; | |
&:nth-child(3) { left: 50%; } | |
&:nth-child(4) { left: calc(50% + 170px); } | |
&:nth-child(5) { left: calc(50% + 340px); } | |
&:nth-child(6) { left: calc(50% + 510px); opacity: 0; } | |
} | |
} | |
@media (width < 650px) { | |
.content { | |
& .title { font-size: 0.9rem; } | |
& .description { font-size: 0.65rem; } | |
& button { font-size: 0.7rem; } | |
} | |
.item { | |
width: 130px; | |
height: 220px; | |
&:nth-child(3) { left: 50%; } | |
&:nth-child(4) { left: calc(50% + 140px); } | |
&:nth-child(5) { left: calc(50% + 280px); } | |
&:nth-child(6) { left: calc(50% + 420px); opacity: 0; } | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment