Событие scroll : jquery

296
03 июня 2017, 18:18

Имеется блок header, и при скролле, когда header уже не видно, нужно сделать header фиксированным, чтобы его было постоянно видно. Я решил это так:

https://jsfiddle.net/2fg6aj3b/

js:

$(window).scroll(function() {
    var scroll = $(this).scrollTop(),
        $bottom = $('.bottom');
    if( !$bottom.hasClass('fix') && scroll > 50 ){
        $bottom.addClass('fix');
    }else if( $bottom.hasClass('fix') && scroll <= 50) {
        $bottom.removeClass('fix');
    }
})

но меня интересует следующее в этом js-коде: получается, что при скроллинге будет постоянно вызываться этот обработчик scroll.
Можно ли как-то сделать, чтобы этот обработчик срабатывал только в верхней части страницы, т.е. чтобы не перегружать браузер лишними обработчиками?
Как обычно решается эта проблема?
И правильно ли я сделал обработчик?

READ ALSO
Javascript массив

Javascript массив

Помогите сделать вывод и правильно вписать массивВот задание: Дан массив целых чисел

319
Как сделать гамбургер меню только в мобильной версии?

Как сделать гамбургер меню только в мобильной версии?

Имеется готовый код на jquery, реализующий гамбургер меню в магазине на OpencartНо гамбургер функционирует при любом разрешении экрана, как можно...

669
keyCode не работает на Android Chrome

keyCode не работает на Android Chrome

Не работает keyCode в Android ChromeМне нужно отловить событие в поле ввода(input) тапа по запятой (",") или точке ("

301