기초공사 (html,css,javascript)

leftmenu_arrow 본문

jquery

leftmenu_arrow

에스프레소라떼 2023. 3. 27. 09:14

 

*******html***********

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Document</title>
   <link rel="stylesheet" href="./css/master.css">
   <link rel="stylesheet" href="/VOIS/styles/fontawesome-free-5.13.0-web/css/all.css">
   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css">

   <!-- 이코드가 있어야 script실행된다. -->
   <script src="https://code.jquery.com/jquery-3.6.4.min.js"
   integrity="sha256-oP6HI9z1XaZNBrJURtCoUT5SUnxFr8s3BzRl+cbzUq8="
   crossorigin="anonymous"></script>
</head>

<body class="frame-wrap" oncontextmenu="return false" cz-shortcut-listen="true">
   <input type="hidden" id="s_MenuId" value="SC1000S1000">
   <input type="hidden" id="s_ParentId">
   <input type="hidden" id="s_TreeId">
   <input type="hidden" id="s_TreeName">
   <input type="hidden" id="s_TreeDepth">
   <div class="frame-sidebar">
 
<div class="div-brand-icon">
   <a class="sidebar-brand d-flex align-items-center justify-content-center" 
   href="/VOIS/" title="Home">
   <img src="/VOIS/pub/menubar/img/pvo_logo.png" height="30" width="71" alt="VOIS 솔루션 패키지">
   </a>
</div>
<hr>
<div class="div-logon-user">
   <ul style="width: 100%; border: 0px solid red;">
       <li style="display: inline-block;"><i class="fas fa-user-circle fa-1x text-gray-600"></i></li>
       <li style="display: inline-block;">시스템관리자</li>
       <li style="display: inline-block; text-align: center; width: 30px;">
         <a onclick="saLogOut();" style="cursor: pointer;">
            <i class="fas fa-sign-out-alt"></i>
         </a>
      </li>
   </ul>
</div>
<!-- 시스템관리자 -->
<ul class="frame-menubar">
   <li class="nav-menu-group1">
      <a href="#"><i class="fas fa-dot-circle"></i>
         <span>데모그룹</span>
         <!-- <span class="sprite arrow"></span> -->
         <i class="fas fa-solid fa-chevron-up"></i>
      </a>
      <ul id="PV000S0000">
         <li class="nav-menu-group2"><a>목소리시험</a>
            <ul id="PV0000S0000">
               <li id="PV0000S0001" class="nav-menu-group3" data-tree-id="PV0000S0001" data-read-write-f="W">
               <a href="#" title="목소리등록">목소리등록</a> 
               </li>
               <li id="PV0000S0003" class="nav-menu-group3" data-tree-id="PV0000S0003"
               data-read-write-f="W"><a href="#" title="목소리인증">목소리인증</a>
               </li>
            </ul>
         </li>
         <li class="nav-menu-group2"><a>운영통계현황</a>
            <ul id="PV1000S0000">
               <li id="PV1000S0001" class="nav-menu-group3" data-tree-id="PV1000S0001"
               data-read-write-f="W">
                  <a href="#" title="대시보드">대시보드</a>
               </li>
               <li id="PV1000S0002" class="nav-menu-group3" data-tree-id="PV1000S0002"
               data-read-write-f="W">
                  <a href="#" title="일일통계현황">일일통계현황</a>
               </li>
            </ul>
         </li>
         <li class="nav-menu-group2"><a>화자인증</a>
            <ul id="PV2000S0000">
               <li id="PV2000S0001" class="nav-menu-group3" data-tree-id="PV2000S0001"
               data-read-write-f="W">
                  <a href="#" title="목소리모델관리">목소리모델관리</a>
               </li>
               <li id="PV2000S0002" class="nav-menu-group3" data-tree-id="PV2000S0002"
               data-read-write-f="W">
                  <a href="#" title="목소리인증관리">목소리인증관리</a>
               </li>
            </ul>
         </li>
         <li class="nav-menu-group2">
            <a>엔진관리</a>
               <ul id="PV3000S0000">
                  <li id="PV3000S0001" class="nav-menu-group3" data-tree-id="PV3000S0001"
                  data-read-write-f="W">
                     <a href="#" title="엔진설정">엔진설정</a> 
                  </li>
               </ul>
            </li>
      </ul> 
   </li>
   <!-- nav-menu-group1 데모그룹 끝-->

   <li class="nav-menu-group1">
      <a href="#"><i class="fas fa-dot-circle"></i>
         <span>시스템관리</span>
         <i class="fas fa-solid fa-chevron-up"></i>
      </a>
         <ul id="CC0000S0000">
            <li class="nav-menu-group2">
               <a>시스템정보</a>
               <ul id="CC1000S0000">
                  <li id="CC1010S0000" class="nav-menu-group3" data-tree-id="CC1010S0000"
                  data-read-write-f="W">
                     <a href="#" title="시스템정보관리">시스템정보관리</a> 
                  </li>
               </ul>
            </li>
            <li class="nav-menu-group2">
               <a>사용자권한</a>
               <ul id="CC2000S0000">
                  <li id="CC2010S0000" class="nav-menu-group3" data-tree-id="CC2010S0000"
                  data-read-write-f="W">
                  <a href="#" title="사용자관리">사용자관리</a>
                  </li>
                  <li id="CC2020S0000" class="nav-menu-group3" data-tree-id="CC2020S0000" 
                  data-read-write-f="W">
                  <a href="#" title="프로그램관리">프로그램관리</a>
                  </li>
                  <li id="CC2030S0000" class="nav-menu-group3" data-tree-id="CC2030S0000" 
                  data-read-write-f="W">
                  <a href="#" title="권한그룹관리">권한그룹관리</a>
                  </li>
               </ul>
            </li>
            <li class="nav-menu-group2"><a>Admin</a>
               <ul id="CC3000S0000">
                  <li id="CC3010S0000" class="nav-menu-group3" data-tree-id="CC3010S0000"
                  data-read-write-f="W">
                  <a href="#" title="테넌트관리">테넌트관리</a>
                  </li>
                  <li id="CC3020S0000" class="nav-menu-group3" data-tree-id="CC3020S0000"
                  data-read-write-f="W">
                  <a href="#" title="작업이력관리">작업이력관리</a>
                  </li>
                  <li id="CC3030S0000" class="nav-menu-group3" data-tree-id="CC3030S0000"
                  data-read-write-f="W">
                  <a href="#" title="로그인이력">로그인이력</a> 
                  </li>
                  <li id="CC3040S0000" class="nav-menu-group3" data-tree-id="CC3040S0000"
                  data-read-write-f="W">
                  <a href="#" title="공통코드관리">공통코드관리</a>
                  </li>
               </ul> 
            </li>
         </ul>
      </li>

      <li class="nav-menu-group1">
         <a href="#"><i class="fas fa-dot-circle"></i>
         <span>테스트</span>
         <i class="fas fa-solid fa-chevron-up"></i>
      </a>
         <ul id="TS0000S0000">
            <li class="nav-menu-group2">
               <a>임시</a>
               <ul id="TS1000S0000">
                  <li id="TS1000S0001" class="nav-menu-group3" data-tree-id="TS1000S0001"
                  data-read-write-f="W">
                  <a href="#" title="예약현황">예약현황</a> 
                  </li>
               </ul>
            </li>
            <li class="nav-menu-group2"><a>김승렬_테스트</a>
               <ul id="TS2000S0000">
                  <li id="TS2000S0001" class="nav-menu-group3" data-tree-id="TS2000S0001"
                  data-read-write-f="W">
                  <a href="#" title="화면1">화면1</a>
                  </li>
               </ul>
            </li>
            <li class="nav-menu-group2"><a>안창용_테스트</a>
               <ul id="TS9000S0000">
                  <li id="TS5000S0000" class="nav-menu-group3" data-tree-id="TS5000S0000" 
                  data-read-write-f="W">
                  <a href="#" title="안창용_소스분석">안창용_소스분석</a>
                  </li>
                  <li id="TS5000S0001" class="nav-menu-group3" data-tree-id="TS5000S0001" 
                  data-read-write-f="W">
                  <a href="#" title="안창용_소스분석1">안창용_소스분석1</a>
                  </li>
               </ul>
            </li>
            <li class="nav-menu-group2"><a>화자인증데모</a>
               <ul id="SR0000S0000">
                  <li id="SG1010S0000" class="nav-menu-group3" 
                  data-tree-id="SG1010S0000" data-read-write-f="W">
                  <a href="#" title="등록&amp;인증">등록&amp;인증</a>
                  </li>
               </ul>
            </li>
            <li class="nav-menu-group2"><a>봉나례_테스트</a>
               <ul id="TS4000S0000">
                  <li id="TS4000S0004" class="nav-menu-group3" data-tree-id="TS4000S0004" 
                  data-read-write-f="W">
                  <a href="#" title="봉나례_코드분석">봉나례_코드분석</a>
                  </li>
               </ul>
            </li>
            <li class="nav-menu-group2"><a>박희정_테스트</a>
               <ul id="TS6000S0000"><li id="TS6000S0012" class="nav-menu-group3" 
                  data-tree-id="TS6000S0012" data-read-write-f="W">
                  <a href="#" title="목소리등록">목소리등록</a>
               </li>
               <li id="TS6000S0013" class="nav-menu-group3" data-tree-id="TS6000S0013" 
               data-read-write-f="W">
               <a href="#" title="일일통계현황">일일통계현황</a>
               </li>
               <li id="TS6000S0010" class="nav-menu-group3" data-tree-id="TS6000S0010"
               data-read-write-f="W">
               <a href="#" title="화자등록페이지">화자등록페이지</a>
               </li>
               <li id="TS6000S0011" class="nav-menu-group3" data-tree-id="TS6000S0011"
               data-read-write-f="W">
               <a href="#" title="목소리모델관리_임시팝업">목소리모델관리_임시팝업</a>
               </li>
               <li id="TS6000S0005" class="nav-menu-group3" data-tree-id="TS6000S0005"
               data-read-write-f="W">
               <a href="#" title="박희정_사용자관리">박희정_사용자관리</a>
               </li>
               </ul>
            </li>
         </ul>
      </li>
 </ul> 
 </div>
 <script src="js/left.js"></script>
</body>
</html>

**********css************

@charset "utf-8";
@-face {
    -family: 'NotoKrL';
    -style: normal;
    -weight: 100;
    src: local('Noto Sans Light'), local('NotoSans-Light'), url(..//NotoSans-subset/NotoSans-Light.eot);
    src: url(..//NotoSans-subset/NotoSans-Light.eot?#iefix) format('embedded-opentype'), url(..//NotoSans-subset/NotoSans-Light.woff2) format('woff2'),
        url(..//NotoSans-subset/NotoSans-Light.woff) format('woff');
    ;
}
@-face {
    -family: 'NotoKrR';
    -style: normal;
    -weight: 300;
    src: local('Noto Sans Regular'), local('NotoSans-Regular'), url(..//NotoSans-subset/NotoSans-Regular.eot);
    src: url(..//NotoSans-subset/NotoSans-Regular.eot?#iefix) format('embedded-opentype'), url(..//NotoSans-subset/NotoSans-Regular.woff2) format('woff2'),
        url(..//NotoSans-subset/NotoSans-Regular.woff) format('woff');
}
@-face {
    -family: 'NotoKrM';
    -style: normal;
    -weight: 500;
    src: local('Noto Sans Medium'), local('NotoSans-Medium'), url(..//NotoSans-subset/NotoSans-Medium.eot);
    src: url(..//NotoSans-subset/NotoSans-Medium.eot?#iefix) format('embedded-opentype'), url(..//NotoSans-subset/NotoSans-Medium.woff2) format('woff2'),
        url(..//NotoSans-subset/NotoSans-Medium.woff) format('woff');
}
@-face {
    -family: 'NotoKrB';
    -style: normal;
    -weight: 700;
    src: local('Noto Sans Bold'), local('NotoSans-Bold'), url(..//NotoSans-subset/NotoSans-Bold.eot);
    src: url(..//NotoSans-subset/NotoSans-Bold.eot?#iefix) format('embedded-opentype'), url(..//NotoSans-subset/NotoSans-Bold.woff2) format('woff2'),
        url(..//NotoSans-subset/NotoSans-Bold.woff) format('woff');
}
@-face {
    -family: 'NanumGothic';
    -style: normal;
    -weight: 400;
    src: url(..//NanumGothic-Regular.eot);
    src: local('NanumGothic'), url(..//NanumGothic-Regular.eot?#iefix) format('embedded-opentype'), url(..//NanumGothic-Regular.woff2) format('x-woff2'), url(..//NanumGothic-Regular.woff)
        format('woff'), url(..//NanumGothic-Regular.ttf) format('truetype');
}
@-face {
    -family: 'NanumGothicBold';
    -style: normal;
    -weight: 700;
    src: url(..//NanumGothic-Bold.eot);
    src: local('NotoKrB'), url(..//NanumGothic-Bold.eot?#iefix) format('embedded-opentype'), url(..//NanumGothic-Bold.woff2) format('x-woff2'), url(..//NanumGothic-Bold.woff) format('woff'),
        url(..//NanumGothic-Bold.ttf) format('truetype');
}
@-face {
    -family: 'Font Awesome 5 Free';
    -style: normal;
    -weight: 400;
    src: url("../styles/awesome-free-5.13.0-web/webs/fa-regular-400.eot");
    src: url("../styles/awesome-free-5.13.0-web/webs/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../styles/awesome-free-5.13.0-web/webs/fa-regular-400.woff2")
        format("woff2"), url("../styles/awesome-free-5.13.0-web/webs/fa-regular-400.woff") format("woff"), url("../styles/awesome-free-5.13.0-web/webs/fa-regular-400.ttf")
        format("truetype"), url("../styles/awesome-free-5.13.0-web/webs/fa-regular-400.svg#awesome") format("svg");
}
@-face {
    -family: 'Font Awesome 5 Free';
    -style: normal;
    -weight: 900;
    src: url("../styles/awesome-free-5.13.0-web/webs/fa-solid-900.eot");
    src: url("../styles/awesome-free-5.13.0-web/webs/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../styles/awesome-free-5.13.0-web/webs/fa-solid-900.woff2") format("woff2"),
        url("../styles/awesome-free-5.13.0-web/webs/fa-solid-900.woff") format("woff"), url("../styles/awesome-free-5.13.0-web/webs/fa-solid-900.ttf") format("truetype"),
        url("../styles/awesome-free-5.13.0-web/webs/fa-solid-900.svg#awesome") format("svg");
}

.fa, .fas {
    -family: 'Font Awesome 5 Free';
    -weight: 900;
    padding-top: 2px;
    color:#014c3d;
}

.far {
    -family: 'Font Awesome 5 Free';
    -weight: 400;
    padding-top: 2px;
}

/* css reset */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong,
    sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure,
    figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    -size: 100%;
}
a {
    text-decoration: none;
}

body {
    color: #333;
    border:1px solid #333;
    margin:0 auto;
    /*     overflow-y: hidden; */
}

ol, ul, li {
    margin: 0;
    padding: 0;
    list-style: none;
}
/* page default */
#page_main {
    min-width: 1024px;
}
/* 시스템관리자 */
.div-logon-user ul {
   background:cornsilk;
}
.div-logon-user ul li{
    font-size:16px;
}
.div-logon-user ul li:last-child {
    float:right;
}

/* 추가작성 */
.frame-menubar li span {
    display:inline-block;
    color:#333;
}
.frame-menubar li a {
   font-size:16px;
    font-family: 'NotoKrM';
    line-height:30px;
}
/* 화살표 */
.frame-menubar li a i:last-child {
    float:right;
    padding-right: 10px;
    transition:0.5s; 
    display:block;

    transition:0.5s;
}
/* active를 넣어서 arrow반대로. 
.frame-menubar li a i:last-child.active{
    transform:rotate(45deg);
    background:tomato;
}
*/
/* 위와 갈등  active를 어디에 추가해야할지
.frame-menubar li a.active i:last-child{
    transform:rotate(45deg);
    background:tomato;
}
*/
/* a를빼고 li에 active를 넣어야함. 정답*/
.frame-menubar li.active a i:last-child{
    transform:rotate(180deg);
}
/* 자식 */
.frame-menubar li ul {
    display:none;
}
.frame-menubar li ul.active {
    display:block;
}

.frame-menubar li ul li a {
    font-size:12px;
}
/* 모양을 plus모양말고 arrow로 fontawesome으로 */


***********js************   

var asideMenu = $('.frame-menubar > li');
  var li_lastchild = $('asideMenu > a > i:last-child');

   asideMenu.click(function(){
    //   $('.frame-menubar li ul').addClass('active');
    //   $('li_lastchild').addClass('active'); 모든 li가 나오겠찌

      $(this).find('ul').slideToggle();
      $(this).siblings().find('ul').slideUp();

    //  모양바꾸자
    // 클릭시 i의모양이 바뀐다. --css.active
    // 이것의 형제는 active를 삭제한다. active를 삭제해야 원 화살표가 나오겠찌.
    // $(this).addClass('active'); 틀립 toggleClass로 해줘야함.
    $(this).toggleClass('active');
    $(this).siblings().removeClass('active');

    
   });

'jquery' 카테고리의 다른 글

li 상속  (0) 2023.03.28
onchange  (0) 2023.03.25
slideToggle  (0) 2023.03.21
21_스크롤메뉴 -each / offset().top / scrollTop()  (0) 2023.02.22
tabs_jqueryui.com  (0) 2023.02.18