使用屏幕宽度停止jQuery功能

时间:2014-07-04 15:53:31

标签: jquery if-statement matchmedia

我正在努力解决以下问题:我想根据屏幕宽度更改标题的行为。从小分辨率到大分辨率时,它工作得很好。但另一方面围绕着" ganzOben"和" inMitte"功能不会停止。任何想法?

$(document).load($(window).bind("resize", checkHeader));
$(document).ready(checkHeader ());
$(window).scroll(checkHeader ());

function checkHeader(){
    if (window.matchMedia('(min-width: 725px)').matches) {
            $(window).scroll(function ganzOben (){
                if($(document).scrollTop() <= 0) {
        /* CSS for Header Desktop Res TOP */
                }
            });
        var lastScrollTop = 0;
        $(window).scroll(function inMitte (event){
            var st = $(this).scrollTop();
            if (st > lastScrollTop){
        /* CSS for Header invisble by Downscolling */
            } else {
        /* CSS for Header visible by Upscolling */
            }
            lastScrollTop = st;
        });
    } else {
        $(window).scroll(function inMitte (event) {return false});
        $(window).scroll(function ganzOben () {return false});
        /* CSS for Header in mobile View */
    };
};  

`

1 个答案:

答案 0 :(得分:0)

目前,您每次调用checkHeader时都会添加新的事件处理程序。

您需要删除事件处理程序:$(window).off('scroll');

此外,我不太清楚为什么要为滚动事件设置两个不同的处理程序,一个就足够了。