Obtenire la position a l'écran d'un element Html

Signaler
Messages postés
61
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
1 novembre 2011
-
werdDomain
Messages postés
61
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
1 novembre 2011
-
Bonjour,
je cherche a avoir la position a l'écran et non seulement dans la page web.sa fait deux jours que je cherche, mais je suis dans une impasse.

donc, pour résumé, je voudrais avoir les coordonnées(X, Y) d'un objet Html(HtmlElement).

les éléments vont être dans un ou plusieurs
et n'ont pas toujours les même TAG.

en gros, je souhaite pouvoir envoyer le pointeur de la souris sur des éléments spécifique, je dois donc avoir des coordonné écran. (avant de chercher la position, je fait "ScroolToView()" sur le contrôle, il est donc a l'écran)

merci si vous avez des idées :)

6 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
61
lisant la doc, je dirai ClientRectangle

http://msdn.microsoft.com/fr-fr/library/system.windows.forms.htmlelement.clientrectangle(VS.80).aspx

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
61
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
1 novembre 2011

merci pour ta réponse rapide, mais je crois bien que c'est le rectangle que le client a pour affiché la dite page web ... jai essayer dans mon projet et sa me donne X=1, Y=1 alors que sa devrais être dans les 400 minimum.

je suis entrain de me demandé si je vais finir par trouvé une solution valable :P
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
61
rassures moi au passage... si tu souhaites positionner ton curseur a cet endroit, ce n'est pas dans l'intention de piloter la naviguation a coup de simulation de clicks ?

je dit cela parce que tu as des methodes Click, FireEvent et autres petits trucs pratiques du genre... qui font ça, et proprement.

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
61
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
1 novembre 2011

si tu me sort comment déclarer un array de JavaScript en vb.net, je pourrais envisager une autre solution que celle que je doit utiliser.

fait toi en pas, mon programme fait beaucoup de choses comme envoyer des valeurs en utilisant une fonction JavaScript etc ...

mais en ce moment, je doit :
-soit modifier un array() JavaScript du document
-Soit effectuer un "Drag-n-Drop" pour le faire manuellement.

merci
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
61
le javascript se déclenche suite a des evenements.

onmousedown
onclick
onkeydown
...

FireEvent est ton ami et te permettra de simuler ces events et de délencher le code js directement.





Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
61
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
1 novembre 2011

le code que je veut déclencher, est suite a un glissement ...
il se fie a un objet(en glissement) pour les valeurs envoyé ...

j'ai essayer de déclencher l'évènement, mais c'est 3 évènement:
1) Il crée un clone d'un élément html (il y a donc 2 élément aillant le même ID)
2) il fait suivre ce clone au pointeur de la souris
3) lorsque l'on relâche le bouton de la souris, il écrit le ID de l'élément en glissement dans un Array.

les variables que je veut changé dans la page sont :
document.max = limit;
document.count = 0;
document.plan_list = new Array();
document.i = 0;

voici le code JavaScript :
function load_dragdrop(limit){
var drop = $('cart');
var dropFx = drop.effect('background-color', {wait: false}); // wait is needed so that to toggle the effect,
document.max = limit;
document.count = 0;
document.plan_list = new Array();
document.i = 0;
$$('.item').each(function(item){
 
item.addEvent('mousedown', function(e) {
e = new Event(e).stop();
 
var clone = this.clone()
.setStyles(this.getCoordinates()) // this returns an object with left/top/bottom/right, so its perfect
.setStyles({'opacity': 0.7, 'position': 'absolute'})
.addEvent('emptydrop', function() {
this.remove();
drop.removeEvents();
}).inject(document.body);
 
drop.addEvents({
'drop': function() {
drop.removeEvents();
clone.remove();
if( document.count < document.max ){
item.clone().inject(drop);
document.count++;
document.getElementById('bar_img').style.width = Math.round( ( document.count / document.max ) * 100 ) + '%';
document.getElementById('bar_img').innerHTML = Math.round( ( document.count / document.max ) * 100 ) + ' %';
dropFx.start('555555').chain(dropFx.start.pass('#252525', dropFx));
document.plan_list[document.i] = item.id;
document.i++;
} else {
alert('La liste de planification est déjà pleine !');
}
},
'over': function() {
dropFx.start('555555');
},
'leave': function() {
dropFx.start('252525');
}
});
 
var drag = clone.makeDraggable({
droppables: [drop]
}); // this returns the dragged element
 
drag.start(e); // start the event manual
});
 
});
}


si tu peut m'aider, merci :)