Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/02/2010, 07:03
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Ver lo mismo en diferentes pantallas

El tema es calcular la posición de manera relativa a la zona que te sirve de marco y no respecto de la pantalla.

En el ejemplo que te pongo tenemos tres capas dos de ellas se mueven aleatoriamente pero una de ellas lo hace respecto de la pantalla y la otra respecto de la tercera capa.


position: relative;
position: absolute;

para la capa con position: relative; el punto 0,0 coincide con la esquina superior izquierda de la capa que hace de fondo, mientras que para la otra capa el punto 0,0 és el de la ventana.

Creo que adaptando todo esto puedes solucionar lo que necesitas.


Quim

Código HTML:
Ver original
  1. <script language="javascript">
  2.  
  3. function moure(){
  4. var aleatori;
  5. aleatori = Math.floor (Math.random()*4)+1;
  6.  
  7. if (aleatori==1) {
  8. moure_dalt('objecte',null);
  9. moure_dalt('objecte2',90);
  10. }
  11.  
  12. if (aleatori==2) {
  13. moure_dreta('objecte',null);
  14. moure_dreta('objecte2',90);
  15. }
  16.  
  17. if (aleatori==3) {
  18. moure_arriba('objecte');
  19. moure_arriba('objecte2');
  20. }
  21.  
  22. if (aleatori==4) {
  23. moure_esquerra('objecte');
  24. moure_esquerra('objecte2');
  25. }
  26. window.setTimeout("moure()",1);
  27.  
  28.  
  29. }
  30.  
  31. function moure_dalt(ID_objecte,vmax) {
  32. var objecte_moure = document.getElementById(ID_objecte);
  33.     if (vmax!=null){
  34.         if (parseInt(objecte_moure.style.top) + 10>90){
  35.             objecte_moure.style.top = 90;
  36.         }else{
  37.             objecte_moure.style.top = parseInt(objecte_moure.style.top) + 10;
  38.         }
  39.     }else{
  40.         objecte_moure.style.top = parseInt(objecte_moure.style.top) + 10;
  41.     }
  42. }
  43.  
  44.  
  45. function moure_dreta(ID_objecte,vmax) {
  46. var objecte2_moure = document.getElementById(ID_objecte);
  47.     if (vmax!=null){
  48.         if (parseInt(objecte2_moure.style.left) + 10>90){
  49.             objecte2_moure.style.left = 90;
  50.         }else{
  51.             objecte2_moure.style.left = parseInt(objecte2_moure.style.left) + 10;
  52.         }
  53.     }else{
  54.             objecte2_moure.style.left = parseInt(objecte2_moure.style.left) + 10;
  55.     }
  56. }
  57.  
  58.  
  59. function moure_arriba(ID_objecte) {
  60. var objecte3_moure = document.getElementById(ID_objecte);
  61. if (parseInt(objecte3_moure.style.top) - 10<0){
  62. objecte3_moure.style.top = 0;
  63. }else{
  64. objecte3_moure.style.top = parseInt(objecte3_moure.style.top) - 10;
  65. }
  66. }
  67.  
  68. function moure_esquerra(ID_objecte) {
  69. var objecte4_moure = document.getElementById(ID_objecte);
  70. if (parseInt(objecte4_moure.style.left) - 10<0){
  71. objecte4_moure.style.left = 0;
  72. }else{
  73. objecte4_moure.style.left = parseInt(objecte4_moure.style.left) - 10;
  74. }
  75. }
  76.  
  77.  
  78.  
  79.  
  80. </head>
  81. <body onLoad="moure()">
  82. <br>
  83. <br>
  84. <br>
  85. <br>
  86. <div id="cuerpo" style="width:100px; height:100px; background-color: #F5F5DC; border:1px solid #CCCCCC;margin-bottom:10px;z-index:0">
  87.   <div id="objecte" style="position: absolute; width:10px; height:10px; left:0px; top:0px; background-color: #cccccc; z-index:1">&nbsp;</div>
  88.   <div id="objecte2" style="position: relative; width:10px; height:10px; left:0px; top:0px; background-color: #cccccc; z-index:1">&nbsp;</div>
  89. </div>
  90. </body>
  91. </html>

Última edición por quimfv; 02/02/2010 a las 07:40 Razón: Pongo "Creo" en negrita