inflearn logo
강의

講義

知識共有

独自のポートフォリオWebページを作成する

navigation bar 만들기 java script부분에 질문이 있습니다.

378

a010932321891971 [DEL] 250427152337

投稿した質問数 0

0

navigation bar 만들기 javascipt에서 발생한 문제안녕하세요 현재 강의를 열심히 듣고 있는 학생입니다. 현재 navigation bar 만들기 javascipt에서 화면을 밑으로 스크롤하면 로고와 about, service, portfolio, review가저런식으로 나오게됩니다.

창을 줄여서 하면 메뉴버튼과 LOGO가 합쳐져서 하나를 클릭하지도 못하는 상황이 발생됩니다. 코드를 2~3번씩 확인하고 다시 작성해보았지만, 이렇게 밖에 나오지않아 너무 답답하네요 ㅠㅜ 혹시 문제점이 대충이라도 어딘인지 알수있을까요?

현재 navigtaion bar 만들기 - javascript 즉 강의소개글을 포함하여 4번째 강의를 진행중인 코드입니다.

밑은 js코드입니다.

/* HEADER */

window.onload = function() {scrollFunction()};

window.onscroll = function() {scrollFunction()};

function scrollFunction() {

  var header = document.getElementById('header');

  if(document.documentElement.scrollTop > 70) {

    if(!header.classList.contains('navbar-fixed')) {

        header.classList.add('navbar-fixed');

        document.getElementsByTagName('body')[0].style.marginTop = '70px';

        header.style.display = 'none';

        setTimeout(function(){

          header.style.display = 'block';

        }, 40);

      }

    }else {

      if(header.classList.contains('navbar-fixed')) {

        header.classList.remove('navbar-fixed');

        document.getElementsByTagName('body')[0].style.marginTop = '0';

      }

  }

}

function menuToggle() {

  document.getElementById('menu').classList.toggle('show');

}

document.getElementById('toggleBtn').addEventListener('click', menuToggle);

아래는 혹시라도 더 참고될까봐 css와 html을 첨부하겠습니다.

/* common */

* {

  margin: 0;

  padding: 0;

  font-size: 0;

}

body {

  box-sizing: border-box;

  -webkit-box-sizing: border-box;

  -moz-box-sizing: border-box;

  word-break: break-all;

  font-family: 'Heebo', sans-serif;

}

img {

  width: 100%;

  height: 100%;

}

a{

  text-decoration: none;

  font-size: 14px;

  text-transform: uppercase;

}

ul{

  list-style-type: none;

}

/* HEADER */

.header-area {

  position: relative;

  top: 0;

  left: 0;

  width: 100%

  z-index: 99;

  background-color: white;

  box-shadow: 0 1px 10px rgba(0, 0, 0, 0.3);

}

.navbar-fade {

  animation-name: navbar-fade;

  animation-duration: 0.5s;

  -webkit-animation-name: navbar-fade;

  -webkit-animation-duration: 0.5s;

}

@keyframes navbar-fade {

  from  {opacity: .4}    /*투명도 조절*/

  to  {opacity: 1}    /*투명도 조절*/

}

@-webkit-keyframes navbar-fade {

  from  { opacity: 0.4}

  to  { opacity: 1}

}

.header-area.navbar-fixed {

  position: fixed;

}

.header-area > .navbar {

  width: calc(100% - 120px);

  margin: 0 60px;

  overflow: hidden;

}

@media (min-width: 992px) {

  .header-area > .navbar {

    max-width: 900px;

    margin : 0 auto;

  }

}

@media (min-width: 1200px) {

  .header-area > .navbar {

    max-width: 1000px;

  }

}

.header-area > .navbar> .navbar-brand {

  display: inline-block;

  position: absolute;

  top: 50%;

  transform: translateY(-50%);

  font-size: 32px;

  cursor: pointer;

}

 .header-area > .navbar> .navbar-toggler * {

   font-size: 32px;

 }

.header-area > .navbar> .navbar-toggler {

  float: right;

  height: 70px;

  line-height:70px;

  font-size: 32px;

  cursor: pointer;

}

@media(min-width: 992px) {

    .header-area > .navbar> .navbar-toggler {

      display: none;

    }

}

.header-area > .navbar > .navbar-menu {

  position: absolute;

  background-color: rgba(0, 0, 0, 0.5);

  top: 70px;

  left: 0;

  width: 100%;

  height: 0;

  transition: 0.5s ease;

  overflow: hidden;

}

.header-area > .navbar > .navbar-menu.show {

  height: 200px;

}

.header-area > .navbar > .navbar-menu > .nav-item {

  float: none;

  display: block;

  height: 50px;

  line-height: 50px;

}

.header-area > .navbar > .navbar-menu > .nav-item:hover * {

  background-color: rgba(0, 0, 0, 0.4);

}

.header-area > .navbar > .navbar-menu > .nav-item > .nav-link {

  display:block;

  padding-left: 50px;

  color: white;

  cursor: pointer;

}

@media (min-width: 992px) {

  .header-area > .navbar > .navbar-menu {

    position: relative;

    background-color: transparent;

    float: right;

    top: 0;

    width: auto;

    height: auto;

    transition: none;

  }

  .header-area > .navbar > .navbar-menu.show {

    height: auto;

  }

  .header-area > .navbar > .navbar-menu > .nav-item {

    display: inline-block;

    height: 70px;

    line-height: 70px;

  }

  .header-area > .navbar > .navbar-menu > .nav-item:hover * {

    background-color: transparent;

  }

  .header-area > .navbar > .navbar-menu > .nav-item > .nav-link {

    display: block;

    padding: 0 20px;

    color: black;

  }

}

마지막으로  html입니다.

<!DOCTYPE html>

<html lang="ko">

  <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, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">

    <title>Portfolio - Navbar</title>

    <!-- saved from url = (0013)about:internet -->

    <!-- icon -->

    <script src="https://kit.fontawesome.com/15ac349aa2.js" crossorigin="anonymous"></script>

    <!-- fonts -->

    <link href="https://fonts.googleapis.com/css2?family=Heebo:wght@100;200;300;400;500;600;700;800;900&family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap" rel="stylesheet">

    <!-- user style -->

    <link rel="stylesheet" href="portfolio.css"

  </head>

  <body>

    

    <header class = "header-area navbar-fade" id="header">

      <nav class = "navbar">

        <a class = "navbar-brand" id = "navbarBrand">logo</a>

        <a class = "navbar-toggler" id = "toggleBtn"><i class = "fa fa-bars"></i></a>

        <div class = "navbar-menu" id = "menu">

          <div class = "nav-item"><a class = "nav-link" id = "navbarAbout">about</a></div>

          <div class = "nav-item"><a class = "nav-link" id = "navbarService">service</a></div>

          <div class = "nav-item"><a class = "nav-link" id = "navbarPortfolio">porfolio</a></div>

          <div class = "nav-item"><a class = "nav-link" id = "navbarReview">review</a></div>

        </div>

      </nav>

    </header>

    <div>

      <div>

        <div>

          <div>

            <img src="img\counting-149951__340.jpg">

          </div>

          <div>

            <img src="img\counting-149953__340.jpg">

          </div>

          <div>

            <img src="img\counting-149954__340.jpg">

          </div>

          <div>

            <img src="img\counting-149955__340.jpg">

          </div>

          <a>&#10094;</a>

          <a>&#10095;</a>

          <div>

            <span></span>

            <span></span>

            <span></span>

            <span></span>

          </div>

        </div>

      </div>

    </div>

    <!-- user script -->

    <script src="portfolio.js"></script>

  </body>

</html>

웹 디자인 HTML/CSS

回答 1

0

leesumin900685

안녕하세요.

첨부해주신 코드에서 html 코드를 보면 

 <!-- user style -->

    <link rel="stylesheet" href="portfolio.css"

윗 부분에서 태그 닫는 부분이 빠진 것 같습니다.

이 부분수정해보시기 바랍니다.

감사합니다.

CSS가 적용이 안됩니다.

0

78

1

동영상을 최신버전에 맞게 업그레이드 해주시거나 css적용이 안되는 원인과 해결방법을 빠르게 써주실 수 있나요?

0

100

1

화면이 너무작아요

0

231

0

awesome font에서

0

366

1

팝업창 동영상

0

273

1

챕터 6에서 해결이 안되고 있습니다.

0

368

1

클릭시 드롭다운이 되지 않습니다..

1

388

2

09.NavaigationBar2 js부분 질문입니다.

0

227

1

자바스크립트 에러 현상

0

503

1

건의사항입니다.

1

305

1

CSS

0

236

1

작동이안되여..

0

276

1

이미지

1

243

1

.header-area > .navbar에 적용한 css에 대해서

0

296

1

css 적용이 안되는 증상

0

297

2

className과 classList에 대해 궁금합니다.

0

259

1

이미지 슬라이드 적용예제에서 자바스크립트 함수 bind()에 대해 궁금합니다.

0

497

1

CSS 적용이 안됩니다ㅠㅠ

0

229

2

header 부분에 js파일을 타이핑 했으나 오류가 뜸니다.

0

215

1

스크롤을 내리면 네비게이션바 길이가 줄어듭니다

0

300

1

.navbar-toggler에서 height

0

162

1

overflow:hidden 역할에 대해서

0

331

1

강의를 보면서 같이 타이핑 하고 싶은데

0

223

1

copyright에 대한 질문이 잇습니다

0

207

2