Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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 如何使HTML元素**在iPad上不可旋转?_Javascript_Html_Ipad - Fatal编程技术网

Javascript 如何使HTML元素**在iPad上不可旋转?

Javascript 如何使HTML元素**在iPad上不可旋转?,javascript,html,ipad,Javascript,Html,Ipad,我目前正在为iPad开发一个基于HTML5Canvas/JavaScript的绘图应用程序。它在狩猎中运行。到目前为止,除了一件事,一切都很顺利 如果我旋转设备,我的UI会自动重新定向。这对于大多数UI来说都很酷,除了画布本身。有没有办法强制画布旋转?如何设置特定于方向的CSS: <link rel="stylesheet" type="text/css" href="css/landscape.css" media="all and (orientation:landscape)">

我目前正在为iPad开发一个基于HTML5Canvas/JavaScript的绘图应用程序。它在狩猎中运行。到目前为止,除了一件事,一切都很顺利


如果我旋转设备,我的UI会自动重新定向。这对于大多数UI来说都很酷,除了画布本身。有没有办法强制画布旋转?

如何设置特定于方向的CSS:

<link rel="stylesheet" type="text/css" href="css/landscape.css" media="all and (orientation:landscape)">
<link rel="stylesheet" type="text/css" href="css/portrait.css" media="all and (orientation:portrait)">

在两个方向中的一个方向上,以抵消自动旋转?

设置特定于方向的CSS如何:

<link rel="stylesheet" type="text/css" href="css/landscape.css" media="all and (orientation:landscape)">
<link rel="stylesheet" type="text/css" href="css/portrait.css" media="all and (orientation:portrait)">

在两个方向中的一个方向来抵消自动旋转?

如果有人想知道如何在实践中实现Alnitak的答案,那么您可以:

CSS:

或者,如果愿意,您可以使用单独的CSS文件

为了使画布坐标系与此同步,您可以使用以下方法:

ctx.save();

...

if(window.orientation == 0 || window.orientation == 180) {
    ctx.translate(canvasWidth, 0);
    ctx.rotate(Math.PI / 2);
}

...

ctx.restore();

也许还有其他方法可以达到同样的效果,但这对我来说似乎还不错。请注意,保存/恢复上下文状态是一个好主意,这样您就不会在轮换时把它搞砸

如果有人想知道如何在实践中实现Alnitak的答案,那么您可以这样做:

CSS:

或者,如果愿意,您可以使用单独的CSS文件

为了使画布坐标系与此同步,您可以使用以下方法:

ctx.save();

...

if(window.orientation == 0 || window.orientation == 180) {
    ctx.translate(canvasWidth, 0);
    ctx.rotate(Math.PI / 2);
}

...

ctx.restore();

也许还有其他方法可以达到同样的效果,但这对我来说似乎还不错。请注意,保存/恢复上下文状态是一个好主意,这样您就不会在轮换时把它搞砸

好主意。我得试试这个。我想在这种情况下,我必须改变我的画布坐标。只是一些额外的数学题让我来处理。:)如果操作正确,可以保持画布坐标不变-样式值和屏幕上的值不必一致。确定。我会把这个问题保留一段时间(12个小时左右),如果没有其他问题出现,我会接受你的问题。谢谢你的回答。:)在任何情况下,更糟糕的是,您必须对画布的上下文应用统一的缩放转换。你可以保持你的像素坐标在任意方向上都是一样的。好主意。我得试试这个。我想在这种情况下,我必须改变我的画布坐标。只是一些额外的数学题让我来处理。:)如果操作正确,可以保持画布坐标不变-样式值和屏幕上的值不必一致。确定。我会把这个问题保留一段时间(12个小时左右),如果没有其他问题出现,我会接受你的问题。谢谢你的回答。:)在任何情况下,更糟糕的是,您必须对画布的上下文应用统一的缩放转换。然后,可以在任一方向上保持像素坐标相同。