如何检测 Mac 上的屏幕旋转?

发布于 2024-12-16 14:59:03 字数 49 浏览 0 评论 0原文

是否可以检测屏幕旋转?我正在使用Mac上的触摸屏驱动程序,所以我想知道屏幕是否旋转。

Is it possible to detect screen rotation? I'm woking on the touch screen driver on mac, so I want to know if the screen is rotated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

初心 2024-12-23 14:59:03

MacBook(和 Thinkpad)有一个加速度计,用于检测突然运动(即跌落),以防止 HD 磁头崩溃。加速度计数据通过 webkit API 公开。

加速度计数据的本机 API 仅通过专用于 Apple 的专用接口公开,但 Amit Singh 已发布了有关突然运动传感器 API 的文档 此处

请注意,他已经发布了一个名为 SMSrotateD 的免费程序,可以完成您想要做的事情。当您翻转设备时,它会旋转 MacBook 屏幕。还有一个很酷的示例,它有一个“陀螺仪”窗口,当您随机倾斜设备时,该窗口将保持顶部向上。

MacBooks (and Thinkpads) have an accelerometer used to detect sudden motion (i.e. being dropped) to prevent the HD head from crashing. The accelerometer data is exposed via webkit APIs.

Native APIs for accelerometer data are only exposed via private Apple-only interfaces, but Amit Singh has published his documentation for the sudden motion sensor API here.

Note that he's already published a free program that does what you're trying to do, called SMSRotateD. It'll rotate the MacBook screen as you flip the device. There's also a cool sample that has a "gyroscopic" window which will remain top-up as you tilt your device randomly.

慵挽 2024-12-23 14:59:03

希望这个 HTML 会有帮助(下面是工作版本 http://jsfiddle.net/b7Efq/

另外,您可以检查SeisMac。他们还提供了一个工作库

<html>
<head>

<style>

.angle { height: 100px; } 
#alpha { background-color: red; } 
#beta { background-color: green; } 
#gamma { background-color: blue; } 

</style>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

<script>

var set_bar = function( id, value ) {
  var max_width = $(window).width();
  $( id ).width( value * max_width );
}

var normalize_angle = function( deg ) {
  var x = ( (deg + 180) / 360 ) % 1.0;
  return (x < 0) ? (x + 1.0) : x;

}

window.addEventListener("deviceorientation", function(event) {
  set_bar( "#alpha", normalize_angle(event.alpha));
  set_bar( "#beta", normalize_angle(event.beta + 180));
  set_bar( "#gamma", normalize_angle(event.gamma));
}, true);

</script>
</head>
<body>

  <div class="angle" id="alpha"> </div>
  <div class="angle" id="beta"> </div>
  <div class="angle" id="gamma"> </div>

</body>
</html>

Hope this HTML will be helpful (below and working version http://jsfiddle.net/b7Efq/)

Also, you can check SeisMac. They also provide a working library

<html>
<head>

<style>

.angle { height: 100px; } 
#alpha { background-color: red; } 
#beta { background-color: green; } 
#gamma { background-color: blue; } 

</style>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

<script>

var set_bar = function( id, value ) {
  var max_width = $(window).width();
  $( id ).width( value * max_width );
}

var normalize_angle = function( deg ) {
  var x = ( (deg + 180) / 360 ) % 1.0;
  return (x < 0) ? (x + 1.0) : x;

}

window.addEventListener("deviceorientation", function(event) {
  set_bar( "#alpha", normalize_angle(event.alpha));
  set_bar( "#beta", normalize_angle(event.beta + 180));
  set_bar( "#gamma", normalize_angle(event.gamma));
}, true);

</script>
</head>
<body>

  <div class="angle" id="alpha"> </div>
  <div class="angle" id="beta"> </div>
  <div class="angle" id="gamma"> </div>

</body>
</html>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文