IOS 4.2 (with new Safari Mobile) has the possibility to read sensor data like accelerometer and gyroscope directly from Javascript.
New Javascript objects and event handler
From javascript point of view, we have:
- new handler window.ondevicemotion
- new event object:
- event.accelerationGravity, with x, y, z attributes
- event.accelerationIncludingGravity, with x, y, z attributes
- event.rotationRate, with alpha, beta, gamma attributes
Code Snip
window.ondevicemotion = function(event) {
var accelerationX = event.accelerationIncludingGravity.x;
var accelerationY = event.accelerationIncludingGravity.y;
var accelerationZ = event.accelerationIncludingGravity.z;
}
Demo
Online Demo (require Safari Mobile)
this post is very usefull thx!
Excellent. I’m using this in my upcoming website: http://www.progettystudio.com
That is very fascinating, You’re a very professional blogger. I’ve joined your feed and look forward to looking for extra of your excellent post. Also, I’ve shared your website in my social networks
Great info! I believe it should be event.acceleration rather than event.accelerationGravity, though.
Hi,
This is great… but have you experienced reverse gravity if you have the iPad rotated a certain way on load?
The address bar is at the top but the gravity is reversed.
Is there a way of detecting this / reversing the calculations?
Cheers
Pete
Hi Pete,
to check che orientation of the iPad (ex: portrait upside-down) you can use the window.orientation property.
You can also use the orientationchange event to trigger some action when orientation change:
window.addEventListener(‘orientationchange’, updateOrientation, false);
function updateOrientation() {
var orientation = window.orientation;
switch (orientation) {
// case …
}
}
Why am i sooo noob… I would like to have a script that will scroll my website in mobile style using the accelerometer.
It seems that i don’t have the knowledge to write it myself. Could somebody help me to do it?
Thank you in advance
Thank you very much, this is very helpful