2010-05-16 2 views
0

J'essaye de positionner un DIV absolu en utilisant Jquery, en fonction de l'endroit où l'utilisateur clique sur la page.Utilisation de jquery scrollTop pour positionner Div absolu

Au moment cela fonctionne tout simplement génial

$('#window').css('left', jsEvent.pageX); 
$('#window').css('top', jsEvent.pageY); 

Cela positionne l'élément exactement où ma souris a cliqué sur l'écran ...

Jusqu'à ce que vous faites défiler vers le bas ce qui est. C'est pourquoi j'essaie de réaliser quelque chose qui prendra en compte la quantité de pixels du haut de la page. Je pensais quelque chose comme ça ...

$('#window').css('top', jsEvent.pageY + scrollTop()); 

ferait l'affaire, malheureusement, cela ne fonctionne pas.

Des indices?

Merci,

Tim

Répondre

1

Cela fonctionne certainement dans Firefox. En tant que tel, il devrait fonctionner dans Chrome, Safari et Opera. IE cependant, je ne suis pas entièrement sûr. Donner un coup de feu.

$('#window').css({ 
    left: e.clientX 
    , top: e.clientY + document.documentElement.scrollTop 
}); 

EDIT: Cette nouvelle version devrait fonctionner dans la plupart, sinon tous les navigateurs.

var rxp = /webkit/gi; 

$('#window').css({ 
    left: e.clientX 
    , top: e.clientY + rxp.test(window.navigator.userAgent) ? document.body.scrollTop : document.documentElement.scrollTop 
}); 
+0

Malheureusement, cela ne résout pas le problème. Je ne vois aucune différence dans le résultat par rapport à mon code d'origine. D'autres idées? – Tim

+0

Je viens d'alerter le document.documentElement.scrollTop et il est toujours à zéro quand je défile vers le bas. – Tim

+0

Vérifiez ma modification, laissez-moi savoir si cela fonctionne pour vous. – ground5hark

Questions connexes