javascript - 在带有 event.code 的 switch 语句中使用 JavaScript 运算符

标签 javascript ecmascript-6 switch-statement

我有一个switch我尝试将键盘快捷键映射到水平整页滚动的语句:

  • 空格键向下翻页向右箭头 向前滚动
  • 向上翻页向左箭头滚动 向后
  • Home向上箭头 转到开头 页面的
  • End向下箭头 滚动到末尾 页面的

这是我的尝试,但没有成功:

switch (event.code) {
  case "Space" || "PageDown" || "ArrowRight": {
    scrollAmount += window.innerWidth
    break
  }
  case "PageUp" || "ArrowLeft": {
    scrollAmount -= window.innerWidth
    break
  }
  case "Home" || "ArrowUp": {
    scrollAmount = 0
    break
  }
  case "End" || "ArrowDown": {
    scrollAmount = container.scrollWidth
    break
  }
}

在这种情况下我该如何正确使用运算符?

最佳答案

你应该specify each case separately :

switch (event.code) {
  case "Space":
  case "PageDown":
  case "ArrowRight": {
    scrollAmount += window.innerWidth
    break
  }
  case "PageUp":
  case "ArrowLeft": {
    scrollAmount -= window.innerWidth
    break
  }
  case "Home":
  case "ArrowUp": {
    scrollAmount = 0
    break
  }
  case "End":
  case "ArrowDown": {
    scrollAmount = container.scrollWidth
    break
  }
}

关于javascript - 在带有 event.code 的 switch 语句中使用 JavaScript 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58731784/

相关文章:

javascript - OfficeJS 添加和更新绑定(bind)事件处理程序

javascript - 如何从angularjs http回调中查看json数据?

javascript - 使用动态扩展类表达式创建新元素

javascript - 用户输入后加载 Material UI AutoComplete 建议

javascript - 数组索引更改后重新排序元素值

javascript - JavaScript中如何调用类函数?

javascript - 在 ES6 中包装类函数并使用 super 的直接方法

jQuery - 切换两个开关但不能同时切换两个?

c# - 如何在 C# 中使用 `switch` 仅基于类型参数有条件地分支?

cocoa-touch - 实时渲染中的 IBDesignables 和 traitCollection