• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 토글효과 적용중 질문

토글효과 적용중 질문

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #107888

    남지윤
    참가자
    안녕하세요 선생님
    
    <html>
    <section id="section_menu">
             <div class="section_inner">
                <h1>SELETO MENU</h1>
                <nav class="section_selection">
                   <button id="btn_signature">SIGNATRE</button>
                   <button id="btn_beverage">BEVERAGE</button>
                   <button id="btn_coffee">COFFEE</button>
                   <button id="btn_cookie">COOKIE</button>
                </nav>
                <article class="section_selected_menu">
                   <div class="selected_menu_img">
                      <picture>
                         <source media="(max-width:1024px)" srcset="./images/menu_signature_tablet.png" >
                         < img src="./images/menu_signature.png" alt="시그니처 메뉴 이미지">
                      </picture>
                   </div>
    
    여기서 각 버튼 클릭시 
    <div class="selected_menu_img">
                      <picture>
                         <source media="(max-width:1024px)" srcset="./images/menu_signature_tablet.png" >
                         < img src="./images/menu_signature.png" alt="시그니처 메뉴 이미지">
                      </picture>
                   </div>
    이부분 이미지가 플립되는 효과를 적용시켜주려 하고있습니다..
    
    <css>
    
    
    .selected_menu_img {
       max-width: 50%;
       perspective: 1000px;
       transition: transform 0.5s ease;
    }
    .selected_menu_img picture {
      transition: transform 0.5s ease;
    }
    .selected_menu_img img{
       max-width: 100%;
       height: 100%;
       object-fit: cover;
       transition: transform 0.5s ease;
    }
    .flip {
       transform: rotateY(180deg);
    }
    
    <js>
    
    $(document).ready(function () {
       let menuData;
       let button = $("#btn_signature");
       button.focus();
       $.getJSON('https://raw.githubusercontent.com/JiyunNam0/frontend/main/selecto/data1.json').done(function(data) {
          menuData = data;
       }).fail(function() {
          console.log('실패함')
       })
       $("#btn_signature").on("click", function() {
          updateSelectMenu("SIGNATURE");
          $(".selected_menu_img").toggleClass("flip");
       })
       $("#btn_beverage").on("click", function() {
          updateSelectMenu("BEVERAGE");
          $(".selected_menu_img").toggleClass("flip");
       })
       $("#btn_coffee").on("click", function(){
          updateSelectMenu("COFFEE");
          $(".selected_menu_img").toggleClass("flip");
       })
     $("#btn_cookie").on("click", function() {
          updateSelectMenu("COOKIE");
          $(".selected_menu_img").toggleClass("flip");
       })
       
       function updateSelectMenu(buttonId) {
          let selectedMenu = $(".section_selected_menu");
          let data = menuData.find(item => item.title === buttonId);
       
       
          if(data) {
             selectedMenu.html(`
             <div class="selected_menu_img">
             <picture>
                <source media="(max-width:1024px)" srcset="./images/menu_signature_tablet.png" >
                < img src="${data.images[0]}" alt="시그니처 메뉴 이미지">
             </picture>
          </div>
          <div class="selected_menu_explain">
             <h3>${data.title}</h3>
             <p>${data.content}</p>
             <div class="selected_category_item">
                <p>< img src="${data.images[1]}" alt="시그니처 음료 첫번째" ></p>
                <p>< img src="${data.images[2]}" alt="시그니처 음료 첫번째" ></p>
                <p>< img src="${data.images[3]}" alt="시그니처 음료 첫번째" ></p>
             </div>
             <div class="selected_category_recomm">
                <h4>추천 토핑류</h4>
                <ul class="category_recomm">
                   ${data.topping.map((a, i) => `
                 
        < img src="${a}" alt="시럽">
       <p>${data.toppingname[i]}</p>
                     

                   `));

          }
       }
    })
    
    이렇게 각각 클릭이벤트로 .flip 클래스를 클릭시 붙혀주게 했으나 효과가 안먹더라구요ㅠㅠ..
    수동으로 제가 <div class="selected_menu_img"> 여기옆에 <div class="selected_menu_img flip"> 을 붙혀도 안먹고
    css를 변경해서
    .selected_menu_img.flip img{
       max-width: 100%;
       height: 100%;
       object-fit: cover;
       transition: transform 0.5s ease;
       transform: rotateY(180deg);
    }
      이렇게 .flip을 수동으로 땟다 붙히면 효과가 보이긴 하더라구요
    클릭이벤트에서 클래스를 붙혓는데 왜 적용이 안먹히는지 잘 안풀려서 여쭤봅니다 ㅠㅠ
    #107933

    codingapple
    키 마스터
    개발자도구에서 해당요소 찾아서 flip 클래스명은 붙는지 아니면 어떤 css가 먼저 적용되는지 확인해봅시다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠