Javascript Ширина изображения при прокрутке - PullRequest
0 голосов
/ 25 апреля 2020

Я невероятно новичок в JavaScript, и, честно говоря, думал, что у меня есть план атаки solid, чтобы уменьшить ло go после прокрутки сверху на 10px. Цель состоит в том, чтобы при прокрутке сверху вниз lo go (обычно шириной 400 пикселей) становилось меньше (до 100 пикселей).

Может кто-нибудь помочь мне понять, почему этот код не возвращает никакого визуального ответа ?

Вот разметка HTML:

 <!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title></title>
  <meta name="author" content="">
  <meta name="description" content="">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <link href="normalize.css" rel="stylesheet">
  <link href="style.css" rel="stylesheet">
</head>

<body>
<!--<div id="header">Header</div>-->
<div id="header">
        <img id="header-image" src="logo-mockup.png">
</div>

  <p>THIS IS ALL JUST FILLER TEXT RIGHT NOW.</p>

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
  <script src="script.js"></script>
</body>

</html>

CSS:

#header {
  background-color: #f1f1f1; /* Grey background */
  padding: 30px 0px; /* Some padding */
  color: black;
  text-align: center; /* Centered text */
  font-size: 90px; /* Big font size */
  font-weight: bold;
  position: fixed; /* Fixed position - sit on top of the page */
  top: 0;
  width: 100%; /* Full width */
  height:90px;
  transition: 0.2s; /* Add a transition effect (when scrolling - and font size is decreased) */
}

#header-image {
  padding: 0px 10px; /* Some padding */
  text-align: center;
  top: 0;
  transition: 0.2s; /* Add a transition effect (when scrolling - and font size is decreased) */
}

p {
    margin:300px;
}

И JS:

function scrollFunction() {
  if (document.body.scrollTop > 10 || document.documentElement.scrollTop > 10) {
    document.getElementById("header-image").style.width = "100";
  } else {
    document.getElementById("header-image").style.width = "400";
  }
}

Ответы [ 2 ]

0 голосов
/ 25 апреля 2020

Ваша функция scrollFunction () никогда не вызывается. Вы должны добавить прослушиватель событий для прокрутки окна и не забудьте добавить модуль в конце для установки ширины - в вашем случае 'px'.

window.onscroll = function() {
  if (document.body.scrollTop > 10 || document.documentElement.scrollTop > 10) {
    document.getElementById("header").style.width = "100px";
  } else {
    document.getElementById("header").style.width = "400px";
  }
}
0 голосов
/ 25 апреля 2020

Вам нужно настроить eventListener, который будет вызывать scrollFunction всякий раз, когда пользователь прокручивает колесо.
Сочетание будет просто изменить <body> на <body onscroll="scrollFunction()">.

Вы можете также настроить прослушиватель событий в javascript:

window.addEventListener("scroll", function(e) {
  scrollFunction();
}
...