How To Create Responsive Image Slider In HTML CSS & Javascript

How To Create Responsive Image Slider In HTML CSS & Javascript



Master Frontend to Backend https://bit.ly/frontend-to-backend-ebook —————— Revolutionize projects with our advanced …

source

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>CSS Slider</title>
	<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
	<div class="container">
		<input id="slide1" type="radio" name="group" checked/>
		<input id="slide2" type="radio" name="group"/>
		<input id="slide3" type="radio" name="group"/>
		<input id="slide4" type="radio" name="group"/>
		<input id="slide5" type="radio" name="group"/>
		<div class="dots">
			<label for="slide1"></label>
			<label for="slide2"></label>
			<label for="slide3"></label>
			<label for="slide4"></label>
			<label for="slide5"></label>
		</div>
		<div class="slider">
			<div class="slide" for="slide1" style="--img:url('img1.jpg')">
				<div class="content">
					<h2>Slide 01</h2>
					<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Libero sequi harum accusamus autem, laudantium iste.</p>
				</div>
			</div>
			<div class="slide" for="slide2" style="--img:url('img2.jpg')">
				<div class="content">
					<h2>Slide 02</h2>
					<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Libero sequi harum accusamus autem, laudantium iste.</p>
				</div>
			</div>
			<div class="slide" for="slide3" style="--img:url('img3.jpg')">
				<div class="content">
					<h2>Slide 03</h2>
					<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Libero sequi harum accusamus autem, laudantium iste.</p>
				</div>
			</div>
			<div class="slide" for="slide4" style="--img:url('img4.jpg')">
				<div class="content">
					<h2>Slide 04</h2>
					<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Libero sequi harum accusamus autem, laudantium iste.</p>
				</div>
			</div>
			<div class="slide" for="slide5" style="--img:url('img5.jpg')">
				<div class="content">
					<h2>Slide 05</h2>
					<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Libero sequi harum accusamus autem, laudantium iste.</p>
				</div>
			</div>
		</div>
	</div>
</body>
</html>
@import url('https://fonts.googleapis.com/css?family=Poppins:200,300,400,500,600,700,800,900&display=swap');
*
{
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: 'Poppins', sans-serif;
}
.container 
{
	position: absolute;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100vh;
	width: 100vw;
	background: #222;
}
.container input 
{
	appearance: none;
}
.container .dots 
{
	position: absolute;
	bottom: 30px;
	display: flex;
	gap: 6px;
	z-index: 1000;
}
.container .dots label 
{
	width: 20px;
	height: 20px;
	background: #fff;
	border: 2px solid #222;
	opacity: 0.5;
	border-radius: 50%;
	cursor: pointer;
}
.container input:nth-child(1):checked ~ .dots label:nth-child(1), 
.container input:nth-child(2):checked ~ .dots label:nth-child(2), 
.container input:nth-child(3):checked ~ .dots label:nth-child(3), 
.container input:nth-child(4):checked ~ .dots label:nth-child(4), 
.container input:nth-child(5):checked ~ .dots label:nth-child(5) 
{
	opacity: 1;
}
.container .slider 
{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.container .slider .slide 
{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	clip-path: circle(0% at 0% 50%);
	background: var(--img);
	background-size: cover;
	transition: 1.5s;
	transition-delay: 0s;
	display: flex;
	justify-content: flex-start;
	align-items: flex-end;
	background-position: left;
}
.container .slider .slide:nth-child(even)
{
	clip-path: circle(0% at 100% 50%);
	background-position: right;
}
.container input:nth-child(1):checked ~ .slider .slide:nth-child(1), 
.container input:nth-child(2):checked ~ .slider .slide:nth-child(2), 
.container input:nth-child(3):checked ~ .slider .slide:nth-child(3), 
.container input:nth-child(4):checked ~ .slider .slide:nth-child(4),
.container input:nth-child(5):checked ~ .slider .slide:nth-child(5) 
{
	clip-path: circle(150% at 50% 50%);
	transition-delay: 1s;
	background-position: center;
}
.content 
{
	position: relative;
	padding: 50px 50px 80px 80px;
	max-width: 550px;
}
.content h2 
{
	color: #fff;
	font-size: 3em;
}
.content p 
{
	color: #fff;
} 

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *