J'ai plusieurs DIV avec le même nom de classe, laissez sauvegarder "wmplayer". Je veux m'assurer que lorsque ces DIV se rapprocheront du bas du navigateur, disons 100px au dessus du bas, ils auront l'affichage: aucun. Comment je fais ça avec jQuery? MerciVérifiez la position DIV par rapport à l'écran du navigateur - jQuery
Répondre
Je ne comprends pas exactement ce que vous voulez, mais je belive le code suivant fera l'affaire, ou vous pouvez adapter à votre scénario spécifique. Il lie un événement de redimensionnement sur l'objet DOM de la fenêtre, chaque fois que l'écran le redimensionne, déclenche un événement personnalisé sur toutes les divs de cette classe. L'événement vérifie innserWidth/Height de l'écran du navigateur, avec ces valeurs, il fait des calculs avec la taille div et la position pour atteindre l'objectif. Ce code vérifie à la fois près du bas et près du côté droit de l'écran. Si vous ne souhaitez pas vérifier le côté droit, supprimez le second IF.
var Constant= 100; //100 px
$(document).ready(function() {
$(window).resize(function() {
var x= $(window).attr("innerWidth");
var y= $(window).attr("innerHeight");
$("div.wmplayer").trigger("DisplayNoneEvent", [x,y]);
});
$("div.wmplayer").bind("DisplayNoneEvent", function(x, y) {
var top, left, divwidth, divheight;
top= this.css("top");
left= this.css("left");
divwidth= parseInt(this.css("width"));
if (top + divwidth > x + Constant) {
$("div.wmplayer").css({
"display": "none"
});
} else {
divheight= parseInt(this.css("height"));
if (left + divheight > y + Constant) {
this.css({
"display": "none"
});
}
else {
this.css({
"display": "block"
});
}
}
})
$(window).trigger("resize");
/* the previous line might not be necessary, I'm not sure. It triggers
the event once on pageload */
});
Cela ne fonctionne que sur divs avec position absolue, si vous souhaitez utiliser avec divs avec position relative dont vous avez besoin pour obtenir la position de la div par rapport à la fenêtre, ne savez pas comment le faire. Je ne peux penser à une fonction récursive pour vérifier tous les parents en ajoutant toutes les largeurs/hauteurs jusqu'à ce qu'il atteigne l'objet document. C'est trop moche, lent et sensible aux codes. Peut-être que quelqu'un a une meilleure idée sur la façon de le faire.
Remarque: la fonction parseint ne fonctionne pas très bien sur IE6 et IE7 (je ne sais pas sur IE8), vous devez d'abord supprimer manuellement la chaîne 'px' de la fin de la chaîne retournée par this.css ("largeur ").
Malheureusement, l'élément DIV a une position relative ... :( –
Vous pouvez utiliser position()
. Il récupère la position en haut à gauche de l'élément par rapport à son parent. Quant à la façon de garder le contrôle pour cela, vous pouvez utiliser scroll()
qui est déclenché chaque fois une barre de défilement est déclenchée (mais ne tient pas la mise à jour pendant le défilement IIRC), juste lier défiler à votre fenêtre de document ala $(window).scroll(function() { ... });
Mais je cherche la position par rapport à l'écran de l'ordinateur ou la fenêtre du navigateur. Est-ce que position() fonctionne aussi? –
vous pouvez utiliser css
par exemple
CSS
.nodisplay{
display:none;
}
<div class="wmplayer nodisplay" ></div>
affichage: bloquer par défaut réellement. Lorsque div fait défiler vers le bas, il sera caché 100px au-dessus du fond du navigateur –
- 1. Obtenir la position par rapport à la fenêtre du navigateur
- 2. Position div enfant par rapport à grand div div
- 3. Positionnement d'un div par rapport à défiler la position
- 4. Requête relative à la position du menu déroulant par rapport à la taille du navigateur
- 5. jQuery div animation par rapport au conteneur
- 6. Positionnement du div par rapport à la position de la souris
- 7. Position UIElement par rapport à la fenêtre
- 8. position css par rapport à l'image
- 9. Maintenir la taille div (par rapport à l'écran) malgré le niveau de zoom du navigateur
- 10. AS3 tween position par rapport à la position actuelle
- 11. Obtenir la position absolue d'un div par rapport à la fenêtre
- 12. Jquery anime div à la même position qu'un autre div
- 13. Div position absolue par rapport aux éléments statiques
- 14. div Position à la souris
- 15. Hauteur de la div par rapport à d'autres DIV
- 16. Position absolument positionnée DIV par rapport à (également positionné) parent DIV?
- 17. Jquery différé css div position
- 18. jQuery: Element offset() coordonnées par rapport à un autre élément
- 19. Pourquoi ma position enfant absolue est-elle placée par rapport à la fenêtre du navigateur au lieu de sa position parent relative?
- 20. Retour au début de la position actuelle de la fenêtre par rapport au corps du document
- 21. Jquery Dialog et Div Position
- 22. Problème avec CSS position: par rapport à la position: les enfants absolus
- 23. Position div en fonction de la distance du bord du navigateur (javascript)
- 24. Calculer la position de NSScrollView par rapport à l'image principale
- 25. Trouver la position d'ImageView par rapport à l'image affichée
- 26. Obtention de la position de l'annotation par rapport à l'écran
- 27. jQuery vérifier si position du support du navigateur: fixe
- 28. jquery div position de défilement
- 29. CSS: Forcer un div à s'adapter à l'écran du navigateur?
- 30. div largeur par rapport au contenu
Je pense que l'événement de défilement doit déclencher une action obtenant la position DIV (de l'écran) –