project code image-slide

별하·2024년 6월 12일

프로젝트2

목록 보기
1/10

이미지 앞에만 크고 가로로 3개 정렬된 상태

mainPage1.jsp 이미지 슬라이드 3개에서 1나로 바꾸기전

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:set var="path" value="<%= request.getContextPath() %>" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,300' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="${path}/resources/css/main/mainPage1.css?after"/>
<script  type="text/javascript" src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/resources/js/main/image_slid.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@splidejs/splide@3/dist/js/splide.min.js"></script>

 <%@ include file="./header.jsp" %> 
</head>
<body>
	<div class="page">
		<div class="content1">
			<div class="main-img">
				<div>
					<img src="${path}/resources/img/main/test8.jpg">
				</div>
			</div>
		</div>
			<section class="intro-hub">
				<div>
					<p class="first-line">WELCOME!</p><br>
					<p class="rest-line">qwerqwer qwerqwerqwerqwerqwer qwerqwerqwerqwerqwer<br>
					qwerqwer qwerqwerqwerqwer qwerqwer</p>
				</div>
			</section>
			<div class="content_wrapper">
			<div class="content2">
				<div class="menu-img">
					<ul class="image-slid">
				
					<li class="food-img">
						<img class="out" src="${path}/resources/img/main/맛집03.jpg" width="225"><br>
							<div class="food-tagname">
							#한식 
								<button type="button">자세히보기</button>
							</div>
					</li>>
					<li class="food-img">
						<img class="on" src="${path}/resources/img/main/맛집04.jpg" alt="음식사진"><br>
							<div class="food-tagname">
							#일식
								<button type="button">자세히보기</button>
							</div>
					</li>>
					<li class="food-img">
						<img src="${path}/resources/img/main/맛집05.jpg" alt="음식사진"><br>
							<div class="food-tagname">
							#양식 
								<button type="button">자세히보기</button>
							</div>
					</li>>
					<li class="food-img">
						<img src="${path}/resources/img/main/맛집05.jpg" alt="음식사진"><br>
							<div class="food-tagname">
							#양식 
								<button type="button">자세히보기</button>
							</div>
					</li>>
					<li class="food-img">
						<img src="${path}/resources/img/main/맛집05.jpg" alt="음식사진"><br>
							<div class="food-tagname">
							#양식 
								<button type="button">자세히보기</button>
							</div>
					</li>>
					</ul>
				</div>
				</div>
				
				
				<div class="content3">
				<div class="menu-img1">
					<ul class="image-slid">
				
				
				
					<li class="food-img">
						<img class="out" src="${path}/resources/img/main/맛집03.jpg" width="225"><br>
							<div class="food-tagname">
							#한식 
								<button type="button">자세히보기</button>
							</div>
					</li>>
					<li class="food-img">
						<img class="on" src="${path}/resources/img/main/맛집04.jpg" width="225"><br>
							<div class="food-tagname">
							#일식
								<button type="button">자세히보기</button>
							</div>
					</li>>
					<li class="food-img">
						<img src="${path}/resources/img/main/맛집05.jpg" width="225"><br>
							<div class="food-tagname">
							#양식 
								<button type="button">자세히보기</button>
							</div>
					</li>>
					<li class="food-img">
						<img src="${path}/resources/img/main/맛집05.jpg" width="225"><br>
							<div class="food-tagname">
							#양식 
								<button type="button">자세히보기</button>
							</div>
					</li>>
					<li class="food-img">
						<img src="${path}/resources/img/main/맛집05.jpg" width="225"><br>
							<div class="food-tagname">
							#양식 
								<button type="button">자세히보기</button>
							</div>
					</li>>
					</ul>
				</div>
				</div>
				
				<div class="content4">
				<div class="menu-img2">
					<ul class="image-slid">
				
				
				
					<li class="food-img">
						<img class="out" src="${path}/resources/img/main/맛집03.jpg" width="225"><br>
							<div class="food-tagname">
							#한식 
								<button type="button">자세히보기</button>
							</div>
					</li>>
					<li class="food-img">
						<img class="on" src="${path}/resources/img/main/맛집04.jpg" width="225"><br>
							<div class="food-tagname">
							#일식
								<button type="button">자세히보기</button>
							</div>
					</li>>
					<li class="food-img">
						<img src="${path}/resources/img/main/맛집05.jpg" width="225"><br>
							<div class="food-tagname">
							#양식 
								<button type="button">자세히보기</button>
							</div>
					</li>>
					<li class="food-img">
						<img src="${path}/resources/img/main/맛집05.jpg" width="225"><br>
							<div class="food-tagname">
							#양식 
								<button type="button">자세히보기</button>
							</div>
					</li>>
					<li class="food-img">
						<img src="${path}/resources/img/main/맛집05.jpg" width="225"><br>
							<div class="food-tagname">
							#양식 
								<button type="button">자세히보기</button>
							</div>
					</li>
					</ul>
				</div>
				</div>
				</div>
			</div>
	</div>
</body>
 <%@ include file="./footer.jsp" %> 
</html>

mainPage1.css 바꾸기전

@charset "UTF-8";
	.page{
		display:flex;
		flex-direction:column;
		min-height: 100vh;
	}
	
	/* image slide css */
	
	ul, li{
		list-style: none;
	}
	.image-slid{
	    position: relative;
		/*width: 100%;
	    height: 100%;
	    */
	    width: 350px;
	    height: 350px;
	    overflow: hidden;
	}
	.image-slid > li{
	    display: none;
	    position: relative;
	    /*width: 100%;
	    height: 100%;*/
	    width: 350px;
	    height: 350px;
	}
	.image-slid > li > .food-img{
	    width: 380px;
	    height: 350px;
	}
	.image-slid > li.on{
	    display: block;
	    animation: slider1 1s;
	    animation-fill-mode: forwards;
	}
	.image-slid > li.out{
	    display: block;
	    animation: slider2 1s;
	    animation-fill-mode: forwards;
	}
@keyframes slider1{
	    from{
	        transform: translateX(+100%);
	    } to{
	        left:0px;
	    } 
	}

@keyframes slider2{
	    from{
	        left:0;
	    } to{
	        transform: translateX(-100%);
	    } 
	}

	/* image slide css end */
	
	/* main image css */
	
	.content1{
		display: flex;
		flex:1;
		height: 80vh;
		position: relative;
		padding:10.5rem;
		justify-content: center;
		align-items: center;
	}
	.main-img{
		display: flex;
		flex:1;
		width: 100%;
		height: 80vh;
		position: relative;
		<!-- padding:6.5rem;-->
		padding:0;
		justify-content: center;
		align-items: center;
		margin-top: -60px;
	}
	.main-img div{
		width: 100%;
		height: 100%;
		object-fit: contain;
	}
	.main-img div img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	
	/* main image css end */
	
	/* 소개글 css */
	
	.intro-hub{
		dispaly:flex;
		justify-content: center;
		align-items: center;
		text-align: center;
	}
	.first-line {
		text-align: center;
		font-size: 30px;
		font-family: "Love Ya Like A Sister",cursive;
	}
	.rest-line {
		text-align: center;
		margin-top: -40px;
		font-size: 20px;
		font-family: "Love Ya Like A Sister",cursive;
	}
	
	/* 소개글 css end */
	
	/* menu image css */
	
	.content_wrapper {
		display: flex;
		flex-direction: row;
		justify-content: space-around;	
	}
	
	.content2{
		display: flex;
		
		padding:5rem;
		justify-content: center;
        align-items: center;
        
        width: 350px;
		height: 350px;
	}
	.content3{
		display: flex;
		
		padding:5rem;
		justify-content: center;
        align-items: center;
        
        width: 350px;
		height: 350px;
	}
	.content4{
		display: flex;
		
		padding:5rem;
		justify-content: center;
        align-items: center;
        
        width: 350px;
		height: 350px;
	}
	.menu-img { 
		display: flex;
		flex-wrap: wrap;
		/*width: 350px;
		height: 350px;*/
		width: 100%;
		height: 100%;
		margin-left: 40px;
		gap: 100px;
		position: relative;
		overflow: hidden;
		justify-content: center;
		line-height: 0;
	}
	.menu-img1 { 
		display: flex;
		flex-wrap: wrap;
		width: 100%;
		height: 100%;
		margin-left: 40px;
		gap: 100px;
		position: relative;
		overflow: hidden;
		justify-content: center;
		line-height: 0;
	}
	.menu-img2 { 
		display: flex;
		flex-wrap: wrap;
		width: 100%;
		height: 100%;
		margin-left: 40px;
		gap: 100px;
		position: relative;
		overflow: hidden;
		justify-content: center;
		line-height: 0;
	}

	
	.food-img {
		display: flex;
		flex-direction: column;
		/*width: 350px;
		height: 350px;*/
		width: 100%;
		height: 100%;
		float: left;
		align-items: center;
		text-align: center;
		text-decoration: none;
		overflow: hidden;


	}
	.food-img img {
		width: 100%;
		height: 80%;
		object-fit: cover;
	}
	
	/* menu image css end */
	
	/* menu image tagname css */
	
	.food-tagname{
		display: flex;
		width: 95%;
		justify-content: space-between;
		font-family: "Love Ya Like A Sister",cursive;
	}
	.food-tagname button{
		border: none;
		background-color: darkgray;
		color: white;
	}
	
	/* menu image tagname css end */
	
	
	

image_slid.js

document.addEventListener('DOMContentLoaded', function() {
var index = 0;

function slider(){
    li = document.querySelectorAll('.menu-img > ul> li');

    if (index == 4){ 
        index = 0;
    }
    for(i=0; i<li.length; i++){
        var onNum = index+1;
        if(onNum ==4) {
            onNum = 0;
        }
        console.log(index,onNum);
        
        if(i==index){
            console.log(i,'번째 클래스명 out');
            li.item(i).setAttribute('class','out');
        }
        else if(i==onNum){
            console.log(i,'번째 클래스명 on');
            li.item(i).setAttribute('class','on');
        }
        else {
            console.log(i,'여긴 클래스를 지워라');
            li.item(i).setAttribute('class','');
        }
        
    }
    index++;
}

function prevImage(){
	index--;
	if(index < 0){
		index = 3;
	}
	slider();
}

function nextImage(){
	index++;
	if(index > 3){
		index = 0;
	}
	slider();
}

setInterval(slider,3000);


});



document.addEventListener('DOMContentLoaded', function() {
var index = 0;

function slider(){
    li = document.querySelectorAll('.menu-img1 > ul> li');

    if (index == 4){ 
        index = 0;
    }
    for(i=0; i<li.length; i++){
        var onNum = index+1;
        if(onNum ==4) {
            onNum = 0;
        }
        console.log(index,onNum);
        
        if(i==index){
            console.log(i,'번째 클래스명 out');
            li.item(i).setAttribute('class','out');
        }
        else if(i==onNum){
            console.log(i,'번째 클래스명 on');
            li.item(i).setAttribute('class','on');
        }
        else {
            console.log(i,'여긴 클래스를 지워라');
            li.item(i).setAttribute('class','');
        }
        
    }
    index++;
}

function prevImage(){
	index--;
	if(index < 0){
		index = 3;
	}
	slider();
}

function nextImage(){
	index++;
	if(index > 3){
		index = 0;
	}
	slider();
}

setInterval(slider,3000);


});


document.addEventListener('DOMContentLoaded', function() {
var index = 0;

function slider(){
    li = document.querySelectorAll('.menu-img2 > ul> li');

    if (index == 4){ 
        index = 0;
    }
    for(i=0; i<li.length; i++){
        var onNum = index+1;
        if(onNum ==4) {
            onNum = 0;
        }
        console.log(index,onNum);
        
        if(i==index){
            console.log(i,'번째 클래스명 out');
            li.item(i).setAttribute('class','out');
        }
        else if(i==onNum){
            console.log(i,'번째 클래스명 on');
            li.item(i).setAttribute('class','on');
        }
        else {
            console.log(i,'여긴 클래스를 지워라');
            li.item(i).setAttribute('class','');
        }
        
    }
    index++;
}

function prevImage(){
	index--;
	if(index < 0){
		index = 3;
	}
	slider();
}

function nextImage(){
	index++;
	if(index > 3){
		index = 0;
	}
	slider();
}

setInterval(slider,3000);


});

0개의 댓글