Javascript jQuery语法滚动淡入和媒体查询

Javascript jQuery语法滚动淡入和媒体查询,javascript,jquery,html,css,Javascript,Jquery,Html,Css,如果两个条件都满足,我想让这个语句淡入一个按钮,屏幕大小超过767px,滚动条超过600,当你向上滚动到顶部时淡出 如果屏幕大小低于767px,我希望这个jQuery为null,不做任何事情 现在它在767以下为空。但是当它在上面时,按钮会淡入,但不再淡入,现在我添加了if语句的第二部分 我的语法有什么错误 $(window).scroll(function(){ if ($(this).scrollTop() > 600, $(window).width() >= 767)

如果两个条件都满足,我想让这个语句淡入一个按钮,屏幕大小超过767px,滚动条超过600,当你向上滚动到顶部时淡出

如果屏幕大小低于767px,我希望这个jQuery为null,不做任何事情

现在它在767以下为空。但是当它在上面时,按钮会淡入,但不再淡入,现在我添加了if语句的第二部分

我的语法有什么错误

$(window).scroll(function(){
   if ($(this).scrollTop() > 600, $(window).width() >= 767) {
        $(".fixed-btn").fadeIn();
    }
    else {
        $(".fixed-btn").fadeOut();
    }
});

它是两种情况之间的AND运算符,因此:

$(window).scroll(function(){
   if ($(this).scrollTop() > 600 && $(window).width() >= 767) {
        $(".fixed-btn").fadeIn();
    }
    else {
        $(".fixed-btn").fadeOut();
    }
});

考虑使用
matchMedia()
以获得更好的性能:

// array so You can easily define more media queries in future
var media_queries = [
    window.matchMedia('screen and (max-width: 767px)')
];

function mq_0(mq){

    if(mq.matches){
        // .scroll_600 namespace so You can detach later only this event, in case of using scroll event in other scripts
        $(window).on('scroll.scroll_600', function(){

            // execute only once when .fixed-btn is not visible yet
            if($(this).scrollTop() > 600 && ! $(".fixed-btn").is(':visible')){
               $(".fixed-btn").fadeIn();
            }

        });
    }else{
        // detach event
        $(window).off('.scroll_600');
        $(".fixed-btn").fadeOut();
    }

}

// call on page load
mq_0(media_queries[0]);
media_queries[0].addListener(function(mq){
    mq_0(mq);
});

按钮样式:位置:固定

$(文档).ready(函数(){
$(窗口)。滚动(函数(){
如果($(this).scrollTop()>50&&$(window).width()>=200){
console.log($(this.scrollTop()+''++$(window.width());
$('#mbtn').fadeIn();
}
否则{
$('#mbtn').fadeOut();
}
});
});

点击我

我的文字


我的文字


我的文字


我的文字


我的文字


我的文字


我的文字


我的文字


我的文字


我的文字


我的文字


我的文字


这非常有效,感谢您在学习语法的同时帮助我解决了这样一个基本问题。&&不仅在js中非常有用。。其他运算符为:| |-->或!=-->另一方面,我将阅读并查看matchMedia()。为什么这是一个更好的性能提升?这是因为您将屏幕大小设置为一个可以重用的变量吗?使用
matchMedia()
的主要优点是只调用一次if语句。如果媒体查询匹配,则执行If语句。否则,使用else语句。在我的示例中,当用户访问屏幕大小大于767的网站时,滚动事件从不被触发,并且
fadeOut()
只被调用一次。不是每次他改变屏幕大小或滚动。若他将屏幕尺寸缩小到767px,那个么滚动事件只会附加到主体上一次,当然会在页面滚动上触发。