2016-11-29 7 views
-3

У меня есть сценарий, который добавлен в класс .fix к тегу header с идентификатором #header-wrap, как только страница прокручивается на определенную сумму, но по какой-то причине ничего не происходит при прокрутке. HTML:Javascript не активируется

<header id="header-wrap"> 
     <div id="redline"></div> 
     <div id="velkommen"></div> 
     <div id="header"> 
      <div id="indre"> 
       <h1 id="logo"><a href="index.html">MCBERGBYS</a></h1> 
      </div> 
     </div> 
    </header> 
    <script> 
var wrap = $("#header-wrap"); 

wrap.on("scroll", function(e) { 

    if (this.scrollTop > 143) { 
    wrap.addClass("fix"); 
    } else { 
    wrap.removeClass("fix"); 
    } 

}); 
</script> 

Я новичок в Javascipt, так что я держал пари, что-то очевидно, выключен. Любая помощь приветствуется, спасибо.

+4

Используйте [консоль браузера] (http://webmasters.stackexchange.com/q/8525) и прочитайте ошибки. Нет причин предполагать, что пошло не так. – Xufox

+0

Вы ссылаетесь на jQuery? – IE5Master

+0

Здесь не хватает контекста, чтобы помочь здесь. Если вам больше не нужен доступ к DOM после того, как DOM на самом деле готов, например, '$ (function() {define wrap here, затем определите обработчик прокрутки}' –

ответ

1

Вам необходимо связать событие .on('scroll') с $(window), а не с вашим #header-wrap. Это проверит, когда документ прокручивается вверх и вниз, а не видит, когда отдельный элемент «прокручивается» (например, когда вы перемещаетесь вверх и вниз в текстовом поле).

+0

Как это сделать? – user3774924

+0

Практически так, как я это изложил ... Измените 'wrap.on (" scroll ", function (e) {' to '$ (window) .on (" scroll ", функция (e) {' –

Смежные вопросы