Jquery функция с двумя событиями с использованием && - PullRequest
0 голосов
/ 13 апреля 2020
$(document).ready(function () {
  var scroll_start = 0;
  var startchange = $('#heroSection');
  var offset = startchange.offset();
  $(document).scroll(function () {
    scroll_start = $(this).scrollTop();
    if (scroll_start > offset.top) && ($!(window).width()<760){
      $('#myTopnav').css('background-color', 'rgba(0, 0, 0, 0.9)');
    } else {
      $('#myTopnav').css('background-color', 'transparent');
    }

  });
}); 

Я пытаюсь заставить эту функцию работать, только когда есть событие прокрутки, и окно имеет ширину больше чем 760px, но не может его взломать.

Ответы [ 2 ]

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

Рассмотрим следующее:

$(function() {
  var scroll_start = 0;
  var startchange = $('#heroSection');
  var offset = startchange.offset();
  $(document).scroll(function() {
    scroll_start = $(this).scrollTop();
    console.log(scroll_start, offset.top, $(window).width());
    if (scroll_start > offset.top && $(window).width() > 760) {
      $('#myTopnav').css('background-color', 'rgba(0, 0, 0, 0.9)');
    } else {
      $('#myTopnav').css('background-color', 'transparent');
    }
  });
});
.tall {
  height: 1024px;
  background-color: white;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="myTopnav">Nav</div>
<div id="heroSection" class="tall">
  Tall
</div>

Может быть лучше использовать обратное: $(window).width() > 760

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

Попробуйте вот так

$(document).ready(function () {
    var scroll_start = 0;
    var startchange = $('#heroSection');
    var offset = startchange.offset();
    $(document).scroll(function () {
        scroll_start = $(this).scrollTop();
        if ((scroll_start > offset.top) && window.width > 760) {
            $('#myTopnav').css('background-color', 'rgba(0, 0, 0, 0.9)');
        } else {
            $('#myTopnav').css('background-color', 'transparent');
        }

    });
});

Вы пропустили "(" здесь

if **(**(scroll_start > offset.top) && window.width > 760){
...