logo MagNetO

Mobminder, le produit phare de MagNetO

MobMinder est un agenda électronique web-based.

Intelligent, il facilite l'organisation d'un RDV en tenant compte de toutes les contraintes; durée, urgence, préférences hebdomadaires du visiteur, disponibilité de la salle, du/des opérateur(s).

Facile, il accélère la prise de RDV grâce à une interface intuitive, claire et donc très facile d'apprentissage. Une seule zone de saisie permet la recherche du visiteur sur plusieurs critères; le nom, le téléphone, la référence.

Prévoyant, grâce à son système de rappel de RDV personnalisé et programmable, le visiteur ne peut plus oublier son RDV!

Cette vidéo vous explique en quelques mots le fonctionnement de MobMinder.

Video Teasing

Quelle est la taille réelle de la fenêtre que je surfe?

Dans le cadre d'un développement, j'ai dû capturer la position de ma souris et réagir différemment suivant sa position plus ou moins proche du bord de la fenêtre de surf.

Les explication suivantes demandent une "petite" connaissance de jQuery mais peuvent aussi servir de base pour un développement javascript "standard"

Capturer la position de la souris

A l'aide de jQuery, c'est un jeux d'enfant:

$().mousemove(function(e){
x = e.pageX;
y = e.pageY;
}

x et y étant respectivement les valeurs de l'abcisse et de l'ordonnée (quelques souvenir de géométrie?)

Capturer la taille de l'écran

Javascript nous propose l'objet "screen" pour capturer ces valeurs: screen.width et screen.height, ou encore, screen.availWidth et screen.availHeight

Je vous renvoie vers W3Schools pour obtenir des détails sur ces 2 méthodes, car en fait, elles ne nous conviennent pas.

Ce n'est pas l'écran mais la fenêtre

Effectivement, la taille de l'écran nous importe peu, c'est surtout la taille de la fenêtre de navigation qui nous intéresse.

Javascript nous propose l'objet "window" avec les méthodes "outerWidth" et "outerHeight".
Ici également, je vous renvoie vers W3Schools pour les infos car ce n'est pas encore exactement ce dont nous avons besoin.

Pourquoi? Parceque ces deux méthodes nous retournent les dimensions du browser dans son entièreté, c'est à dire, barres de navigation, barre d'états, panneux latéraux, etc, inclus!

La zone surfable

Voilà ce qui nous intéresse, la zone "réelle" de notre écran, celle qui est contenu "à l'intérieur" du navigateur, sans se soucier de tous les arficices qui l'encadrent. De plus, si le surfeur redimensionne son navigateur, il faut que ces valeurs s'adaptent directement.

Si je vous ai parlé des différentes méthodes, c'est pour mieux comprendre celles-ci

Firefox et associés
window.innerWidth: Returns the physical width of the browser screen
window.innerHeight: Returns the physical height of the browser screen

équivalants IE4+
document.body.clientWidth: Returns the physical width of the browser screen
document.body.clientHeight: Returns the physical height of the browser screen

Attention donc au client qui surfe la page!

Maintenant que vous pouvez capturer la position de la souris et que vous connaissez précisément la dimension de l'écran surfable, voici une fonction qui place un DIV à la place du tooltip lors du survol d'un TD d'un tableau.

Le tooltip se positionnera de l'autre côté de la souris lorsque vous vous approcherez du bord de la fenêtre (vers la droite et vers le bas)

CSS

#tooltip {
display: none;
position: absolute;
width: 200px;
height: 100px;
background: #FFFFAE;
}

HTML

<div id="tooltip"></div>

Javascript

$(document).ready(function() {
$("td").mouseover(function(){
$(this).mousemove(function(e){
// the tooltip position offset
offsetX = 20;
offsetY = 20;
// the tooltip dimensions
boxWidth = 200;
boxHeight = 100;
// the mouse position
x = e.pageX;
y = e.pageY;
// calculation of the screen limit before the tool tip position change
if (window.innerWidth) { //if browser supports window.innerWidth
xLim = window.innerWidth - boxWidth - offsetX - 20;
yLim = window.innerHeight - boxHeight - offsetY - 10;
} else if (document.all) { //else if browser supports document.all
xLim = document.body.clientWidth - boxWidth - offsetX - 20;
yLim = document.body.clientHeight - boxHeight - offsetY - 10;
}
// change to tooltip position if the mouse is out of limit
if (x>xLim)
x = x - boxWidth - offsetX;
else
x = x + offsetX;
if (y>yLim)
y = y - boxHeight - offsetY;
else
y = y + offsetY;
// positioning the tooltip div and show
$("#tooltip").css({top:y, left:x}).show();
});
}).mouseout(function(){
// hide the tooltip div
$("#tooltip).hide();
});
})

Remarquez au passage que je gère également le type de browser et donc j'adapte la méthode en fonction.

Tout est évidemment gérable dans le CSS, n'oubliez pas d'adapter les boxWidth et boxHeight qui sont les dimensions du tooltip.

Si jamais vous transformiez ce code pour en faire quelquechose qui pourrait intéresser les autres, faites-moi signe, j'apporterai les modifications ici aussi!

Bon amusement!

Ecrire un commentaire




Quelle est la quatrième lettre du mot ssnmw ? :