javascript - 仅在屏幕调整大小的特定值之后调用函数

标签 javascript

我试图在屏幕调整大小时调用一个函数,但只有在屏幕超过或低于特定值时才调用,而不是每次调整屏幕大小时。

在这个例子中,我只想在 isMobile 值改变时调用一个函数。

window.addEventListener('resize', () => {
  if (window.innerWidth < mobileSize) {
    isMobile = true;
  } else {
    isMobile = false;
  }
  // call function only isMobile changes from true to false or vice-versa
});

最佳答案

只需存储对最后一个 isMobile 值的引用,并检查该值是否在函数内部更改:

window.addEventListener('resize', () => {
  const lastIsMobile = isMobile;
  isMobile = window.innerWidth < mobileSize;
  if (lastIsMobile !== isMobile) woohoo()
});

请注意,如果 isMobile 确实是一个对象或数组,它们在 JavaScript 中通过引用传递,这意味着改变 isMobile 的值将改变lastIsMobile。不过, bool 值在 JavaScript 中是按值传递的,因此 lastIsMobile 不会以这种方式发生变化。

关于javascript - 仅在屏幕调整大小的特定值之后调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51984558/

相关文章:

javascript - ES6 默认值在 function.arguments 中不可用?

php - 在支持对象方法作为映射函数的javascript中实现映射?

javascript - VueJS prop 行为异常

javascript - jQuery - 如何在另一个范围内调用一个函数

javascript - Webkit 浏览器(Chrome 和 Safari)不喜欢 mailto?

javascript - 遍历数字并按降序重新排列

javascript - d3 转换堆积条形图

javascript - 使用 Marklogic Optic API 进行日期格式化

javascript - 如何在 iOS11 上的 JavaScript 中上传之前检测 heic 图像?

javascript - 替换时出现无效字符错误?