[GithubPages] 하루만에 만드는 깃허브 블로그

15.서브메뉴미리보기,툴팁,서브메뉴펼치기

수정 및 추가하는 파일은 다음과 같습니다.

_includes/body/nav.html
_sass/my-style.scss
assets/js/sidebar-folder.js
_includes/my-head.html
_config.yml

1.1 가장먼저 _includes/body/nav.html 파일을 만들어주세요.

아래 코드를 넣어주세요.

<!--네비게이션바에 메뉴선정-->
<span class="sr-only">Navigation:</span>
<ul>
  
    
      
      <!-- 메뉴 각각을 식별하기위한 인덱스 -->
      
      <li>
        <div class="menu-wrapper" onmouseover="javascript:spread(9)" onmouseout="javascript:spread(9)">
           <!-- submenu 변수는 _config.yml 에서 추가합니다 -->
          
          <a
            id="_drawer--opened"
            href="/about/"
            class="sidebar-nav-item "
            
            >
            About
          </a>
        
          
       </div>
      </li>
    
      
      <!-- 메뉴 각각을 식별하기위한 인덱스 -->
      
      <li>
        <div class="menu-wrapper" onmouseover="javascript:spread(10)" onmouseout="javascript:spread(10)">
           <!-- submenu 변수는 _config.yml 에서 추가합니다 -->
          
          <a
            
            href="/project/"
            class="sidebar-nav-item "
            
            >
            Project
          </a>
        
          
       </div>
      </li>
    
      
      <!-- 메뉴 각각을 식별하기위한 인덱스 -->
      
      <li>
        <div class="menu-wrapper" onmouseover="javascript:spread(11)" onmouseout="javascript:spread(11)">
           <!-- submenu 변수는 _config.yml 에서 추가합니다 -->
          
            <!-- spread 함수는 js 파일로 작성하고 my-head.html에 추가합니다 -->
            <!-- spread-btn class는 my-style.scss에 추가합니다. -->
          <button class="spread-btn">
                <!-- marterial stylesheet를 my-head.html에 추가합니다 -->
              <span id="spread-icon-11" class="material-icons">arrow_right</span>
          </button>
          
          <a
            
            href="/study/"
            class="sidebar-nav-item "
            
            >
            Study
          </a>
        
          
          <div id="submenu-11" class="menu-wrapper submenu hide">
            <ul style="list-style: none;">
            
              <li>
                <a
                  class="sidebar-nav-item "
                  href="/papers/"
                  >
                  Papers
                </a>
              </li>
            
              <li>
                <a
                  class="sidebar-nav-item "
                  href="/library/"
                  >
                  Library
                </a>
              </li>
            
              <li>
                <a
                  class="sidebar-nav-item "
                  href="/mldl/"
                  >
                  MLDL
                </a>
              </li>
            
              <li>
                <a
                  class="sidebar-nav-item "
                  href="/codingtest/"
                  >
                  CodingTest
                </a>
              </li>
            
              <li>
                <a
                  class="sidebar-nav-item "
                  href="/python/"
                  >
                  Python
                </a>
              </li>
            
              <li>
                <a
                  class="sidebar-nav-item "
                  href="/study-etc/"
                  >
                  Study-etc
                </a>
              </li>
            
            </ul>
          </div>
          
       </div>
      </li>
    
      
      <!-- 메뉴 각각을 식별하기위한 인덱스 -->
      
      <li>
        <div class="menu-wrapper" onmouseover="javascript:spread(12)" onmouseout="javascript:spread(12)">
           <!-- submenu 변수는 _config.yml 에서 추가합니다 -->
          
            <!-- spread 함수는 js 파일로 작성하고 my-head.html에 추가합니다 -->
            <!-- spread-btn class는 my-style.scss에 추가합니다. -->
          <button class="spread-btn">
                <!-- marterial stylesheet를 my-head.html에 추가합니다 -->
              <span id="spread-icon-12" class="material-icons">arrow_right</span>
          </button>
          
          <a
            
            href="/blog/"
            class="sidebar-nav-item "
            
            >
            Blog
          </a>
        
          
          <div id="submenu-12" class="menu-wrapper submenu hide">
            <ul style="list-style: none;">
            
              <li>
                <a
                  class="sidebar-nav-item "
                  href="/daily/"
                  >
                  Daily
                </a>
              </li>
            
              <li>
                <a
                  class="sidebar-nav-item "
                  href="/travel/"
                  >
                  Travel
                </a>
              </li>
            
              <li>
                <a
                  class="sidebar-nav-item "
                  href="/aiblog/"
                  >
                  AIblog
                </a>
              </li>
            
              <li>
                <a
                  class="sidebar-nav-item "
                  href="/blog-etc/"
                  >
                  Blog-etc
                </a>
              </li>
            
              <li>
                <a
                  class="sidebar-nav-item "
                  href="/githubpages/"
                  >
                  GithubPages
                </a>
              </li>
            
            </ul>
          </div>
          
       </div>
      </li>
    
  
</ul>

1.2 assets/js 폴더를 만들어줍니다. 거기에 sidebar-folder.js 파일을 만들어줍니다.

아래코드를 넣어줍니다.

function spread(count){
    let submenu = document.getElementById('submenu-' + count);
    if(submenu){
        if(submenu.classList.contains('hide')) submenu.classList.remove('hide');
        else submenu.classList.add('hide');
    }

    let spreadIcon = document.getElementById('spread-icon-' + count);
    if(spreadIcon){
        if(spreadIcon.innerHTML == 'arrow_right') {
            spreadIcon.innerHTML = 'arrow_drop_down';
            spreadIcon.style.color = 'grey';
        }else{
            spreadIcon.innerHTML = 'arrow_right';
            spreadIcon.style.color = 'white';
        } 
    }
}

2.1 _sass > my-style.scss 에서 아래 코드를 추가해줍니다.

// 메뉴
.spread-btn{
  right: 15%;
  position: absolute;
  padding: 0;
  padding-top: 2px;
  border: none;
  background: none;
  color: white;
  cursor: pointer;
  z-index: 1;
}
.menu-wrapper {
  text-align: left;
  margin-left: 30%;
}
.submenu.menu-wrapper{
  right: 10%;
  position: absolute;
  background-color: rgb(34,31,32);
  border-radius: 5px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
  width: 10rem;
  z-index: 5;
  ul{
    margin: 0;
    padding: 0 1.25rem;
  }
}
.submenu.menu-wrapper.hide{
  display: none;
}

2.2 _includes > my-head.html 에 아래코드를 추가해줍니다.

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<script src="/assets/js/sidebar-folder.js"></script>

© 2020. All rights reserved.

따라쟁이