Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] e.pageX, e.pageY = desajuste en posición

Estas en el tema de e.pageX, e.pageY = desajuste en posición en el foro de Jquery en Foros del Web. Hola. He creado un script de jQuery para que al clickar sobre un enlace genere un div justo en la posición del click más 15 ...
  #1 (permalink)  
Antiguo 18/05/2013, 17:08
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Exclamación e.pageX, e.pageY = desajuste en posición

Hola.

He creado un script de jQuery para que al clickar sobre un enlace genere un div justo en la posición del click más 15 px tanto en el eje x como en y.

Lo he probado en mi ordenador y funciona perfectamente pero el problema viene cuando lo subo a mi web, algún estilo css o algo le afecta y hace que salga más alejado de la cuenta y no consigo encontrar que es.

Este es mi script:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     a = 0;
  3.     $('#news').click(function(e){
  4.         $('#news2').html('');
  5.         $('#news2').animate({'width':'0px','height':'0px'},a,function(){
  6.         var x = e.pageX + 15;
  7.         var y = e.pageY + 15;
  8.         $('#news2').css({'border-radius':'15px','background-color':'#C63','position':'absolute','top':y,'left':x});
  9.         $('#news2').animate({'width':'210px','height':'140px'},600,function(){
  10.         $('#news2').html('<ul><li><a target="_blank" href="http://www.guardian.co.uk/">TheGuardian</a></li><li><a target="_blank" href="http://www.express.co.uk/">Express</a></li><li><a target="_blank" href="http://www.nytimes.com/">The New Your Times</a></li><li><a target="_blank" href="http://www.nypost.com/">New York Post</a></li><li><a target="_blank" href="http://europe.wsj.com">The Wall Street Journal</a></li></ul>');
  11.         a = 300;
  12.         });
  13.         });
  14.        
  15.     });
  16.     $('#news2').mouseleave(function(){
  17.         $('#news2').html('');
  18.         $('#news2').animate({'width':'0px','height':'0px'},a);
  19.     });
  20.  
  21.  
  22. });

Y esta mi página:

http://coolenglish.tk/index.php?option=com_content&view=featured&Itemid= 104

Saludos y gracias por leerme.
  #2 (permalink)  
Antiguo 19/05/2013, 18:11
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 23
Respuesta: e.pageX, e.pageY = desajuste en posición

Hola,

Estuve revisando y si ves tu CSS, desde "#main {" (linea 305) hacia abajo, todos los que ocupen la propiedad "position: relative;", causan conflicto con el recuadro que quieres posicionar ocupando "position: absolute;"

En una prueba rapida, si elimino todos los que tenga "position: relative;", la imagen queda en su lugar.

De todas formas, corrigiendo eso, no seria mejor obtener una sola vez la posicion de la imagen y asi siempre mostraria el recuadro nuevo en una sola posicion? o es la idea que sea dinamica, es decir, si pincho en la letra E la muestra casi al lado, si pincho en la esquina inferio igualmente? (Esto es anexo)

Saludos
  #3 (permalink)  
Antiguo 20/05/2013, 01:59
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Si la idea es que sea dinámico voy a revisar el css y te comento
  #4 (permalink)  
Antiguo 20/05/2013, 02:57
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: e.pageX, e.pageY = desajuste en posición

Estuve mirando y la cuestión es como hago para no tener quitarle a estos:

main
wrapper
comp_80
breadcrumbs

el position:relative y que el otro que yo quiero no le afecte, porque depende de esos 4.
__________________
No hay preguntas tontas, sino tontos que no preguntan.
  #5 (permalink)  
Antiguo 20/05/2013, 10:35
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 23
Respuesta: e.pageX, e.pageY = desajuste en posición

Hola,

Mi pregunta es... necesitas realmente que tengan una posicion relativa? porque finalmente esto no afecta en gran medida, es decir, mantienen su posicion original en el HTML. Creo, que deberias buscar otra forma de armar tu pagina, lamentablemente yo solo se un poco mas de lo basico en CSS. y personalmente no ocupo estos elementos a menos que sean realmente necesarios.

Y bueno, esto ya no es JQuery, si no que es CSS.

Saludos
  #6 (permalink)  
Antiguo 21/05/2013, 06:06
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: e.pageX, e.pageY = desajuste en posición

En todos no pero en el breadcrumbs si porque lo subo 40px gracias a eso, he probado a subirlo con padding y con margin pero lo unico que hace es aumentar la altura de la página.

Necesito saber otra forma de subirlo o alguna forma de que no le afecte las position.

Saludos.
__________________
No hay preguntas tontas, sino tontos que no preguntan.
  #7 (permalink)  
Antiguo 21/05/2013, 11:40
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 23
Respuesta: e.pageX, e.pageY = desajuste en posición

Hola,

Dejando tu CSS como lo tenias originalmente, con los "relative", al elemento ID "news", agregale "position: absolute", y luego al elemento ID "news2", corrigele el "left" y el "top".

Con esto, al tener los dos una posicion "absoluta", se colocara el otro elemento sobre el "news"


http://vagabundia.blogspot.com/2011/...s-con-css.html


Nota: Recien se me ocurrio y busque info con eso :D

Saludos
  #8 (permalink)  
Antiguo 21/05/2013, 14:12
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: e.pageX, e.pageY = desajuste en posición

Hola ya probé a combinar eso que dices y tampoco funciona si tan solo pudiera subir el div breadcrumbs ya le podría quitar el position:relative a todos : /
__________________
No hay preguntas tontas, sino tontos que no preguntan.
  #9 (permalink)  
Antiguo 22/05/2013, 11:53
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 23
Respuesta: e.pageX, e.pageY = desajuste en posición

Que raro, yo lo probe y funcionaba.

Probaste reemplazando el top y el position actual por margin-top: -40px

Saludos
  #10 (permalink)  
Antiguo 22/05/2013, 12:54
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: e.pageX, e.pageY = desajuste en posición

Perfecto eso es lo que necesitaba, había probado margin-bottom, padding-bottom pero no se me ocurrió ponerlo en el top negativo así ya si puedo conseguirlo muchas gracias por tu ayuda!

Saludos y suerte.
__________________
No hay preguntas tontas, sino tontos que no preguntan.

Etiquetas: css, dom, posicion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:01.