- [JavaScript] 16. 이벤트 처리 - 배너 변경하기2024년 08월 01일
- Song hyun
- 작성자
- 2024.08.01.:34
728x90반응형[JavaScript] 16. 이벤트 처리 - 배너 변경하기
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .flex-container{ display: flex; height: 400px; /*이미지가 벗어나는 부분 숨기기*/ overflow: hidden; } .flex-item{ flex:1; display: flex; justify-content: center; position: relative; } .flex-item img{ width: 100%; height: 100%; position: absolute; top: 0; left: 0; } </style> </head> <body> <div class="flex-container"> <div class="flex-item"> <button class="button prev-btn">prev</button> </div> <div class="flex-item"> <img src="../ch01/images/image1.png" alt=""> <img src="../ch01/images/image2.png" alt=""> </div> <div class="flex-item"> <button class="button next-btn">next</button> </div> </div> <script> let images = document.querySelectorAll(".flex-item img"); let currentIndex=0; document.querySelector(".prev-btn").addEventListener('click',()=>{ console.log("prev 이벤트 확인"); }); document.querySelector(".next-btn").addEventListener('click',()=>{ console.log("next 이벤트 확인"); }); </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .flex-container{ display: flex; height: 400px; /*이미지가 벗어나는 부분 숨기기*/ overflow: hidden; } .flex-item{ flex:1; display: flex; justify-content: center; position: relative; } .flex-item img{ width: 100%; height: 100%; position: absolute; top: 0; left: 0; visibility:hidden; } .flex-item img.active{ opacity:0; visibility:visible; } </style> </head> <body> <div class="flex-container"> <div class="flex-item"> <button class="button prev-btn">prev</button> </div> <div class="flex-item"> <img class="active src="../ch01/images/image1.png" alt=""> <img src="../ch01/images/image2.png" alt=""> </div> <div class="flex-item"> <button class="button next-btn">next</button> </div> </div> <script> let images = document.querySelectorAll(".flex-item img"); let currentIndex=0; // 방어적 코드 작성 document.querySelector(".prev-btn").addEventListener('click',()=>{ // 현재 active 클래스를 가진 이미지를 제거 image[currentIndex].classLisr.remove("active"); currentIndex=currentIndex-1; if(currentIndec<0){ currentIndex+=images.length; } // 새로운 currentIndex 값으로 지정된 녀석을 활용해서 해당 이미지에 클래스 속성 active를 추가한다. imagse[currentIndex].classList.add("active"); }); document.querySelector(".next-btn").addEventListener('click',()=>{ // 현재 active 클래스를 가진 이미지를 제거 images[currentIndex].classList.remove("active"); currentIndex=currentIndex+1; if(currentIndex>images.length-1){ currentIndex-=images.length; } images[currentIndex].classList.add("active"); }); </script> </body> </html>
728x90반응형'HTML,CSS, JS > JavaScript' 카테고리의 다른 글
[JavaScript] 18. AJAX와 Fetch (0) 2024.08.02 [JavaScript] 17. Promise 타입 (0) 2024.08.02 [JavaScript] 15. 쿼리 셀렉트문과 클래스 선택자 (0) 2024.08.01 [JavaScript] 14. 이벤트 처리 - 이미지 토글 (0) 2024.08.01 [JavaScript] 13. 이벤트 위임 - 연습문제 풀이 (0) 2024.07.26 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)