Est-ce faisable dans IE7 ou Firefox?Est-il possible d'obtenir la position de div dans la fenêtre du navigateur? Pas dans le document. Dans la fenêtre
Répondre
Vous pouvez le faire dans les deux - obtenir la position par rapport au document, puis soustraire la position de défilement.
var e = document.getElementById('xxx');
var offset = {x:0,y:0};
while (e)
{
offset.x += e.offsetLeft;
offset.y += e.offsetTop;
e = e.offsetParent;
}
if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft))
{
offset.x -= document.documentElement.scrollLeft;
offset.y -= document.documentElement.scrollTop;
}
else if (document.body && (document.body.scrollTop || document.body.scrollLeft))
{
offset.x -= document.body.scrollLeft;
offset.y -= document.body.scrollTop;
}
else if (window.pageXOffset || window.pageYOffset)
{
offset.x -= window.pageXOffset;
offset.y -= window.pageYOffset;
}
alert(offset.x + '\n' + offset.y);
Essayez the dimensions jQuery plugin. Voir this demo.
$('#myelement.').offset();
Vous pouvez soustraire le offsetTop de div de la document.body.scrollTop
Cela semble fonctionner sur IE7 et FF3, mais sur une page très simple. Je n'ai pas vérifié avec DIVs imbriqués.
Non, le offsetTop ne montre votre position à l'intérieur du div parent. Cela fonctionne pour la div de haut niveau et échoue avec les autres. Notez comment la première réponse passe par les parents accumulant des compensations. – mmaclaurin
En utilisant Prototype ce serait:
$('divname').viewportOffset.top
$('divname').viewportOffset.left
Dans IE et Firefox 3, vous pouvez utiliser getBoundingClientRect pour cela; pas de cadre nécessaire. Mais, oui, vous devriez utiliser un framework si vous avez besoin de supporter d'autres navigateurs.
[de la réponse Collage je donnai here]
La méthode getBoundingClientRect()
native a été autour depuis un certain temps maintenant, et fait exactement ce que la question demande. De plus, il est pris en charge dans tous les navigateurs (y compris IE 5, il semble!)
De this la page MDN:
La valeur retournée est un objet TextRectangle, qui contient en lecture seule à gauche, en haut, à droite et en bas propriétés décrivant la zone de bordure, en pixels, avec le coin supérieur gauche par rapport à la partie supérieure gauche de la fenêtre.
Vous pouvez l'utiliser comme ceci:
var viewportOffset = el.getBoundingClientRect();
// these are relative to the viewport, i.e. the window
var top = viewportOffset.top;
var left = viewportOffset.left;
- 1. Déterminer la position de la fenêtre du navigateur en JavaScript?
- 2. comment afficher le message d'actualisation dans la fenêtre du navigateur
- 3. Retour au début de la position actuelle de la fenêtre par rapport au corps du document
- 4. Lien dans la fenêtre contextuelle ne ferme pas la fenêtre?
- 5. Redimensionner par programme la fenêtre du navigateur dans GWT
- 6. Comment ancrer Firebug dans la fenêtre du navigateur?
- 7. Ouvrir la fenêtre Navigateur du programme Java
- 8. Get hauteur de la fenêtre de navigateur entrer dans IE8
- 9. JQuery - "Sélecteur" pour la position actuelle dans le document
- 10. Masquage de la barre d'outils/barre d'état avec javascript dans la fenêtre du navigateur ACTUEL?
- 11. Position de la fenêtre d'un fichier CHM
- 12. Composants n'apparaissant pas dans la fenêtre
- 13. obtenir la position de la fenêtre d'affichage dans javascript dans iphone safari
- 14. JFrame disparaît derrière la fenêtre du navigateur de l'applet
- 15. ASP.Net: authentification via la fenêtre de connexion du navigateur
- 16. Tri dans la fenêtre datacontext dans WPF
- 17. Arrêter le navigateur pour forcer l'élément de formulaire dans la vue de la fenêtre
- 18. JQuery - Écrire dans la fenêtre d'ouverture
- 19. Ext Dependency Builder dans la fenêtre POPUP
- 20. jQuery Définir la position de la souris (pas la position du curseur)
- 21. Déplacement d'objets dans la fenêtre du centre de masse
- 22. disposer jQuery automatiquement dans la fenêtre
- 23. Est-il possible de changer la police dans la fenêtre d'édition SQL dans Access 2007?
- 24. Réduire la fenêtre du navigateur à l'aide de javascript
- 25. Affichage de DataGrid dans la fenêtre de conception, mais pas dans la page Web
- 26. Comment faire pour griser la fenêtre complète du navigateur et afficher un formulaire dans le centre?
- 27. Comment déterminer la hauteur et la position de défilement d'une fenêtre dans jQuery?
- 28. Méthode de navigateur croisé pour détecter le scrollTop de la fenêtre du navigateur
- 29. Fenêtre du propriétaire WPF en haut de la fenêtre enfant
- 30. tableau HTML est plus grand que la fenêtre du navigateur
Veuillez remplacer 'position' par' offset' et 'bodt' par' body'. – suzanshakya
chapeaux-off ... celui qui a écrit ceci. – Varun
parfait - merci! – Iamsamstimpson