javascript - JQuery matchMedia .scroll 不起作用?

标签 javascript jquery

我试图让网站上的 Logo 在滚动时淡出,但仅当它处于中宽媒体查询时才淡出:992px。该代码在加载时有效,但在调整窗口大小时无效,我不太清楚哪里出了问题。

$(document).ready(function(){
});

//Large Screen Check Scroll Event
var screenSize = window.matchMedia("(min-width: 992px)");
scrollFade(screenSize);
scrollFade.addListener(screenSize);

function scrollFade(screenSize){
   if (screenSize.matches){ // if media query matches
     $(window).scroll(function(){
       $(".logo").css("opacity", 1 - $(window).scrollTop() / 600);
     });//do the thing
  }
}

最佳答案

addListener() 是向后的。相反,该函数应该附加到 matchMedia 变量,例如:

screenSize.addListener(scrollFade);

JS Fiddle

如果用户更改窗口大小,您可能还想停止滚动事件,以便它不再与之前匹配。为此,您可以添加 else 语句并添加:

$(window).off('滚动');

JS Fiddle - off()

关于javascript - JQuery matchMedia .scroll 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43131125/

相关文章:

javascript - 制作一个没有 ng-show 或 ng-hide 的 AngularJS "hide and show"解决方案

javascript - 在嵌入式 C# 中传递 Javascript 变量

javascript - JQuery,使用动态类创建元素

php - 从 JQuery (Ajax) 调用 PHP SOAP Web 服务

jquery - 为什么 checkall 代码不起作用?

javascript - Drive Realtime API XHR 错误处理程序崩溃

javascript - 如何在查询字符串中使用回车或换行?

jquery - 获取 400 错误请求 SharePoint 2013 Rest API

javascript - 使用 val() 和 keyup() 的 2 个变量的 jQuery if 语句

javascript - 如何在 Bootstrap 模式中为 HTML 选择设置默认值?