У меня есть функция, взятая с помощью учебника, она отлично работает с одним единственным элементом, но я хочу использовать его с некоторыми элементами, и я не знаю достаточно о Javascript для этого.специфическая функция в Javascript
Это моя функция:
var elements = document.getElementsByClassName('boules');
for (var i = 0; i < elements.length; i++) {
gameAccel(elements[i]);
}
function gameAccel(sphere) {
var x=20,y=300,vx=0,vy=0,ax=0,ay=0;
if(window.DeviceMotionEvent!=undefined){
window.ondevicemotion=function(e){
ax=event.accelerationIncludingGravity.x*3;
ay=event.accelerationIncludingGravity.y*3;
}
monInterval = 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();
sphere.style.top=y+"px";
sphere.style.left=x+"px";
},25);
}
function boundingBoxCheck(){
if(x<0){x=0;vx=-vx;}
if(y<0){y=0;vy=-vy;}
if(x>document.documentElement.clientWidth-40){
x=document.documentElement.clientWidth-40;
vx=-vx;
}
if(y>document.documentElement.clientHeight-40){
y=document.documentElement.clientHeight-40;
vy=-vy;
}
}
}
У меня есть один элемент с классом «буль», это работает, если у меня есть несколько элементов с классом «игры в шары» это не работает.
Эта функция используется на мобильных устройствах с гироскопом. (это основной пример http://www.albertosarullo.com/demos/accelerometer/).
Кто-то может объяснить мне, почему и как я могу это исправить?
Большое спасибо.
Ожидается, что все '.boules' будут иметь одинаковую позицию? Если это так, то просто используйте цикл над 'элементами', где вы назначаете координаты. – Bergi