Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2013, 15:10
Avatar de sonickseven
sonickseven
 
Fecha de Ingreso: diciembre-2012
Ubicación: bogota
Mensajes: 404
Antigüedad: 11 años, 5 meses
Puntos: 2
problema con efecto de zoom propio (mousemove)

Hola chicos como estan :D . Tengo un problema con un efecto de zoom que estoy haciendo. Cuando se mueve el mouse (mousemove) la el bg de un div que aparece cambia, aparte el div se mueve con el cursor!!. He aqui donde esta el problema. por que cuando el cursor se pone encima del div que hace el efecto de zoom pues ocurre el error!! ya que el layer se toma de div que ahora toco osea que cambiaria de por ejemplo: eje x=100 y eje y=200 a x=0 y y=0 cuando se pone el cursor encima del div con el efecto de zoom

esta es la imagen de como se ve


como ven el cursor esta alejado del div con el efecto de zoom debido a que si lo toca el div queda en la parte superior izquierda.
y este es el codigo:
Código Javascript:
Ver original
  1. function zoom(e){//es una llamada de contextmenu
  2.     e.preventDefault();
  3.     var offset = $('.FinalImage').offset();
  4.     console.log(offset.top);
  5.     if(se('.FinalImage>div')===null){
  6.         var div=document.createElement('div');
  7.         this.appendChild(div);
  8.         div.style.background=$('.FinalImage').css('background-image')+' scroll no-repeat 0 0/'+($('.FinalImage').width()*3)+'px transparent';
  9.     }else{
  10.         //se('.FinalImage').removeEventListener('contextmenu', arguments.callee, false);
  11.         if(se('.FinalImage>div')!==null)
  12.             se('.FinalImage').removeChild(se('.FinalImage>div'));
  13.     }
  14.     this.addEventListener('mousemove', function(ev){//esta es la funcion que avisa que se ha movido el cursor
  15.         if(se('.FinalImage>div')!==null){
  16.             var x=ev.layerX-70, //eje x
  17.                 y=ev.clientY-10;//eje y
  18.             console.log(y);
  19.             se('.FinalImage>div').style.top=(y)+'px';
  20.             se('.FinalImage>div').style.left=x+'px';
  21.             se('.FinalImage>div').style.backgroundPosition='-'+((x+50)*3)+'px -'+((y+30)*3)+'px'; //esta es la  parte donde se va moviendo el background aumentado
  22.         }
  23.     },false);
  24. }

listos chicos ese seria mi problema en si....
agradezco la ayuda :D