Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery更改div上的类_Jquery - Fatal编程技术网

使用jquery更改div上的类

使用jquery更改div上的类,jquery,Jquery,我有一个div,它根据用户在使用jquery的页面上的位置来更改类。此函数如下所示 $(function(){ var menu = $('#menu'), pos = menu.offset(); $(window).scroll(function(){ if($(this).scrollTop() > pos.top+menu.height() && menu.hasClass('default')){

我有一个div,它根据用户在使用jquery的页面上的位置来更改类。此函数如下所示

$(function(){

    var menu = $('#menu'),
        pos = menu.offset();

        $(window).scroll(function(){
            if($(this).scrollTop() > pos.top+menu.height() && menu.hasClass('default')){
                menu.fadeOut('slow', function(){
                    $(this).removeClass('default').addClass('fixed').fadeIn('slow');
                });
            } else if($(this).scrollTop() <= pos.top && menu.hasClass('fixed')){
                menu.fadeOut('slow', function(){
                    $(this).removeClass('fixed').addClass('default').fadeIn('slow');
                });
            }
        });

});

我不完全明白,但我要试一试:

只需将.click函数分开,或将其移到if/else{}中即可

$(function(){       
    var menu = $('#menu'),
        pos = menu.offset();

    $(window).scroll(function(){
        if($(this).scrollTop() > pos.top+menu.height() && menu.hasClass('default')){
            menu.fadeOut('slow', function(){
                $(this).removeClass('default').addClass('fixed').fadeIn('slow');
            });

            //you can paste it here

        } else if($(this).scrollTop() <= pos.top && menu.hasClass('fixed')){
            menu.fadeOut('slow', function(){
                $(this).removeClass('fixed').addClass('default').fadeIn('slow');
            });

            //or you can paste it here
        }
    });

    //or you can leave it here to apply to all cases
    $(".closemeny").click(function() {
        menu.fadeOut('slow', function(){
            $('#menu').removeClass('fixed').addClass('default').fadeIn('slow');
        });
    });
});

我不完全明白,但我要试一试:

只需将.click函数分开,或将其移到if/else{}中即可

$(function(){       
    var menu = $('#menu'),
        pos = menu.offset();

    $(window).scroll(function(){
        if($(this).scrollTop() > pos.top+menu.height() && menu.hasClass('default')){
            menu.fadeOut('slow', function(){
                $(this).removeClass('default').addClass('fixed').fadeIn('slow');
            });

            //you can paste it here

        } else if($(this).scrollTop() <= pos.top && menu.hasClass('fixed')){
            menu.fadeOut('slow', function(){
                $(this).removeClass('fixed').addClass('default').fadeIn('slow');
            });

            //or you can paste it here
        }
    });

    //or you can leave it here to apply to all cases
    $(".closemeny").click(function() {
        menu.fadeOut('slow', function(){
            $('#menu').removeClass('fixed').addClass('default').fadeIn('slow');
        });
    });
});

你所能做的就是创建一个方便的函数,你可以通过它来保持东西干燥。我认为把这些活动结合起来对你没有好处;即使他们做同样的事情,他们还是不同的

var changeClass = function (c1, c2) {
    menu.fadeOut('slow', function () {
        $(this).removeClass(c1).addClass(c2).fadeIn('slow');
    });
};

$(window).scroll(function () {
    if ($(this).scrollTop() > pos.top + menu.height()) {
        changeClass('default', 'fixed');
    } else if ($(this).scrollTop() <= pos.top) {
        changeClass('fixed', 'default');
    }
});

$(".closemeny").click(function() {
    changeClass('fixed', 'default');
});

你所能做的就是创建一个方便的函数,你可以通过它来保持东西干燥。我认为把这些活动结合起来对你没有好处;即使他们做同样的事情,他们还是不同的

var changeClass = function (c1, c2) {
    menu.fadeOut('slow', function () {
        $(this).removeClass(c1).addClass(c2).fadeIn('slow');
    });
};

$(window).scroll(function () {
    if ($(this).scrollTop() > pos.top + menu.height()) {
        changeClass('default', 'fixed');
    } else if ($(this).scrollTop() <= pos.top) {
        changeClass('fixed', 'default');
    }
});

$(".closemeny").click(function() {
    changeClass('fixed', 'default');
});

这真的很好用!但当我再次滚动时,图层会返回。。有没有办法在有人点击关闭按钮后禁用图层?在重新加载页面之前不会返回..我只是添加了这个来删除div.$.closemenu.clickfunction{menu.fadeOut'slow',函数{$'menu'.remove;效果非常好!但是当我再次滚动时,图层会返回..有没有办法在有人单击closemeny后禁用图层?在重新加载页面之前不会返回..我只是添加了这个来删除div.$.closemenu.clickfunction{menu.fadeOut'slow',函数{$'menu'。删除;