2015-02-06 27 views
-1

我已發佈此問題,因爲我不知道從哪裏開始。我有25個相同位置的多個圖像,我需要根據移動位置從左到右的變化程度,在移動iPhone Safari瀏覽器上更改圖像。任何幫助,建議將非常感激。使用javascript更改移動旋轉上的圖像getmoju.com

我有一些代碼來獲得roration率: -

window.ondevicemotion = function(event) { 
    var accelerationX = event.accelerationIncludingGravity.x; 
    var accelerationY = event.accelerationIncludingGravity.y; 
    var accelerationZ = event.accelerationIncludingGravity.z; 
} 

我有很紮實example我正好需要的。

編輯: -

我嘗試過的一些代碼。

<script type="text/javascript"> 

var x = 0, y = 0, 
    vx = 0, vy = 0, 
    ax = 0, ay = 0; 

var sphere = document.getElementById("sphere"); 

if (window.DeviceMotionEvent != undefined) { 
    window.ondevicemotion = function(e) { 
     ax = event.accelerationIncludingGravity.x * 10; 
     ay = event.accelerationIncludingGravity.y * 10; 

    } 

    setInterval(function() { 
     var landscapeOrientation = window.innerWidth/window.innerHeight > 1; 
     if (landscapeOrientation) { 
      vx = vx + ay; 
      vy = vy + ax; 
     } else { 
      vy = vy - ay; 
      vx = vx + ax; 
     } 
     vx = vx * 0.98; 
     vy = vy * 0.98; 
     y = parseInt(y + vy/50); 
     x = parseInt(x + vx/50); 

     boundingBoxCheck(); 
     document.getElementById("sphere").innerHTML = x; 
     sphere.style.right = y + "px"; 
     sphere.style.left = x + "px"; 
     var screenWidth=screen.width; 
     var imageCount=24; 
     var medianImageChange=screenWidth/imageCount; 
     var count=1; 

     for (i = 0; i > imageCount; i++) { 
      var medianImageChange=medianImageChange*count; 
      if((medianImageChange)<x || medianImageChange==x){ 
       document.getElementById("innerHTML").innerHTML = '<img class="change'+count+'" id="change'+count+'" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_'+i+'.jpg" />'; 
      } 
      count++; 
     } 

    }, 25); 
} 


function boundingBoxCheck(){ 
    if (x<0) { x = 0; vx = -vx; } 
    if (y<0) { y = 0; vy = -vy; } 
    if (x>document.documentElement.clientWidth-20) { x = document.documentElement.clientWidth-20; vx = -vx; } 
    if (y>document.documentElement.clientHeight-20) { y = document.documentElement.clientHeight-20; vy = -vy; } 

} 

</script> 

HTML: -

<div id="content"> 
    <h1>Accelerometer Javascript Test</h1> 
    <div id="sphere"></div> 
     <div id="innerHTML"></div> 
</div> 

但情況並非如此,因爲我想任何人都可以幫我請。

回答

-1

最後一天工作我有我自己的答案。

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Move the Ball</title> 
<meta name="viewport" content="width=device-width,user-scalable=no" /> 
<script src="http://debug.phonegap.com/target/target-script-min.js#accelerometer"></script> 
<style> 
#no { 
    display: none; 
} 
.hide{display:none;} 
#ball { 
    width: 20px; 
    height: 20px; 
    border-radius: 10px; 
    -webkit-radius: 10px; 
    background-color: red; 
    position:absolute; 
    top: 0px; 
    left: 0px; 
} 
</style> 
<script type="text/javascript" src="moju/jquery-1.11.2.min.js"></script> 
</head> 

<body> 
<div id="content"> 
    <h1>Move the Ball</h1> 
    <div id="yes"> 
     <p>Move your device to move the ball. This sample is using Device Orientation and Motion API compatible with iOS since 4.2</p> 
     <p>Mantain your device in portrait orientation for better results (you can lock it)</p> 
     <div id="ball"></div> 
    </div> 
    <div id="no"> 
    Your browser does not support Device Orientation and Motion API. Try this sample with iPhone, iPod or iPad with iOS 4.2+.  
    </div> 
    <div id="innerHTML"> 
    <img class="hide imgsrc change1" id="change1" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_0.jpg" /> 
    <img class="hide imgsrc change2" id="change2" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_1.jpg" /> 

     <img class="hide imgsrc change3" id="change3" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_2.jpg" /> 

     <img class="hide imgsrc change4" id="change4" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_3.jpg" /> 

     <img class="hide imgsrc change5" id="change5" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_4.jpg" /> 

     <img class="hide imgsrc change6" id="change6" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_5.jpg" /> 

     <img class="hide imgsrc change7" id="change7" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_6.jpg" /> 

     <img class="hide imgsrc change8" id="change8" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_7.jpg" /> 

     <img class="hide imgsrc change9" id="change9" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_8.jpg" /> 

     <img class="hide imgsrc change10" id="change10" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_9.jpg" /> 

     <img class="hide imgsrc change11" id="change11" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_10.jpg" /> 

     <img class="hide imgsrc change12" id="change12" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_11.jpg" /> 

     <img class="hide imgsrc change13" id="change13" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_12.jpg" /> 

     <img class="hide imgsrc change14" id="change14" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_13.jpg" /> 

     <img class="hide imgsrc change15" id="change15" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_14.jpg" /> 

     <img class="hide imgsrc change16" id="change16" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_15.jpg" /> 

     <img class="hide imgsrc change17" id="change17" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_16.jpg" /> 

     <img class="hide imgsrc change18" id="change18" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_17.jpg" /> 

     <img class="hide imgsrc change19" id="change19" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_18.jpg" /> 

     <img class="hide imgsrc change20" id="change20" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_19.jpg" /> 

     <img class="hide imgsrc change21" id="change21" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_20.jpg" /> 

     <img class="hide imgsrc change22" id="change22" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_21.jpg" /> 

     <img class="hide imgsrc change23" id="change23" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_22.jpg" /> 

     <img class="hide imgsrc change24" id="change24" width="250" height="250" src="https://cf0.getmoju.com/f/Sq6ZUEom-lkB_23.jpg" /></div> 
</div> 
<script> 
/* 
Curious about the code? Great! Welcome to this code ;) 
Feel free to copy and use this code 
If you are going to blog or tweet about it or if you are going to create a better 
code, please mantain the link to www.mobilexweb.com or @firt in Twitter. 
*/ 

// Position Variables 
var x = 0; 
var y = 0; 

// Speed - Velocity 
var vx = 0; 
var vy = 0; 

// Acceleration 
var ax = 0; 
var ay = 0; 

var delay = 10; 
var vMultiplier = 1; 

if (window.DeviceMotionEvent==undefined) { 
    document.getElementById("no").style.display="block"; 
    document.getElementById("yes").style.display="none"; 

} else { 
    window.ondevicemotion = function(event) { 
     ax = event.accelerationIncludingGravity.x; 
     ay = event.accelerationIncludingGravity.y; 
     console.log("Accelerometer data - x: " + event.accelerationIncludingGravity.x + " y: " + event.accelerationIncludingGravity.y + " z: " +event.accelerationIncludingGravity.z); 
    } 

    setInterval(function() { 
     vy = vy + -(ay); 
     vx = vx + ax; 

     var ball = document.getElementById("ball"); 
     y = parseInt(y + vy * vMultiplier); 
     x = parseInt(x + vx * vMultiplier); 

     if (x<0) { x = 0; vx = 0; } 
     if (y<0) { y = 0; vy = 0; } 
     if (x>document.documentElement.clientWidth-20) { x = document.documentElement.clientWidth-20; vx = 0; } 
     if (y>document.documentElement.clientHeight-20) { y = document.documentElement.clientHeight-20; vy = 0; } 

     ball.style.right = y + "px"; 
     ball.style.left = x + "px"; 

     var screenWidth=screen.width; 
     var imageCount=24; 
     var medianImageChange=screenWidth/imageCount; 
     var count=1; 

     for (i = 0; i < imageCount; i++) { 
     var degreeRotation=medianImageChange*count; 
     if(x>degreeRotation){ 
      $(".imgsrc").addClass("hide"); 
      $(".change"+count).removeClass("hide"); 
     } 
     count++; 
    } 
    }, delay); 
} 

</script> 

</body> 
</html> 

可能對其他人有用。