Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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
Javascript 为什么OrientionChange事件不能在桌面上启动?_Javascript_Html - Fatal编程技术网

Javascript 为什么OrientionChange事件不能在桌面上启动?

Javascript 为什么OrientionChange事件不能在桌面上启动?,javascript,html,Javascript,Html,我知道在台式机上没有改变方向的概念,但是在chrome开发工具中有一个改变方向的选项。我看到resize事件在更改方向时触发,这是合理的。。既然AxB变成了BxA,为什么方向连火都没有 我可以使用什么替代方法来确保在任何设备上方向发生变化时触发事件 index.html: <html lang="en"> <head> </head> <body> <script src="./main.js">

我知道在台式机上没有改变方向的概念,但是在chrome开发工具中有一个改变方向的选项。我看到resize事件在更改方向时触发,这是合理的。。既然AxB变成了BxA,为什么方向连火都没有

我可以使用什么替代方法来确保在任何设备上方向发生变化时触发事件

index.html:

<html lang="en">
    <head>
    </head>
    <body>
        <script src="./main.js"></script>
    </body>
</html>
我甚至尝试了jquery事件处理程序,但都不起作用

在Chrome79上安装mac。 谢谢。

如果您对方向更改感兴趣,方向更改是正确的选择

您所描述的应该可以从您的开发工具中使用,因为这些工具将扩展可用的web API,使您的桌面浏览器的行为类似于移动浏览器,从那里可以真正改变方向。 在macOs上的Chrome79中,点击响应模式旋转图标可以使事件正常进行

现在,如果您希望检查桌面浏览器何时以垂直模式或水平模式通过,您仍然可以选择添加:

const query=匹配媒体屏幕和方向:纵向; query.onchange=e=>{ console.log“方向更改”,query.matches“纵向”:“横向”; //虽然这里的广场将被标记为景观, //如果你想处理这个特殊情况 //创建另一个mediaquery方向:横向 }
您可能需要在整页模式下运行此代码段如果您更改操作系统设置以将显示器显示从横向更改为纵向或从横向更改为纵向,则定向更改在桌面上可能有一定的意义,但它似乎不会触发定向更改,如果是,如果你遇到一个解决方案,请告诉我。你的意思是你正在从响应设计模式或chrome上的任何名称触发它?它确实在我身上燃烧v79@Kaiido在chrome dev tools的Responsive design mode editor中选择Responsive as device,而不是任何其他平板电脑/手机。你会注意到,当设备是任何手机/平板电脑时,定向甚至会触发,但当你选择设备作为响应设备时,它不会触发事件。该死,我还以为我回复的评论来自于某些性能哈哈。我刚把你介绍给你。这个matchMedia正是我要找的,谢谢!我想要我拥有的任何设备,只要它的方向改变,我就想要触发一个事件。
window.addEventListener("orientationchange", function(){
    this.console.log("orientation changed")
});
window.addEventListener("resize", function(){
    this.console.log("resized")
});