Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FENÈTRE FLOTANTE


Information sur la source

Catégorie :Fenêtre & Pop-up Niveau : Expert Date de création : 28/11/2001 Vu : 9 860

Note :
7,17 / 10 - par 6 personnes
7,17 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


Description

Voici une petite fenètre flotante.
 

Source

  • Dans le Head :
  • <script>
  • // by Erik Arvidsson for WebFX at http://webfx.eae.net
  • var checkZIndex = true;
  • var dragobject = null;
  • var tx;
  • var ty;
  • var ie5 = document.all != null && document.getElementsByTagName != null;
  • function getReal(el) {
  • temp = el;
  • while ((temp != null) && (temp.tagName != "BODY")) {
  • if ((temp.className == "moveme") || (temp.className == "handle")){
  • el = temp;
  • return el;
  • }
  • temp = temp.parentElement;
  • }
  • return el;
  • }
  • function moveme_onmousedown() {
  • el = getReal(window.event.srcElement)
  • if (el.className == "moveme" || el.className == "handle") {
  • if (el.className == "handle") {
  • tmp = el.getAttribute("handlefor");
  • if (tmp == null) {
  • dragobject = null;
  • return;
  • }
  • else
  • dragobject = eval(tmp);
  • }
  • else
  • dragobject = el;
  • if (checkZIndex) makeOnTop(dragobject);
  • ty = window.event.clientY - getTopPos(dragobject);
  • tx = window.event.clientX - getLeftPos(dragobject);
  • window.event.returnValue = false;
  • window.event.cancelBubble = true;
  • }
  • else {
  • dragobject = null;
  • }
  • }
  • function moveme_onmouseup() {
  • if(dragobject) {
  • dragobject = null;
  • }
  • }
  • function moveme_onmousemove() {
  • if (dragobject) {
  • if (window.event.clientX >= 0 && window.event.clientY >= 0) {
  • dragobject.style.left = window.event.clientX - tx;
  • dragobject.style.top = window.event.clientY - ty;
  • }
  • window.event.returnValue = false;
  • window.event.cancelBubble = true;
  • }
  • }
  • function getLeftPos(el) {
  • if (ie5) {
  • if (el.currentStyle.left == "auto")
  • return 0;
  • else
  • return parseInt(el.currentStyle.left);
  • }
  • else {
  • return el.style.pixelLeft;
  • }
  • }
  • function getTopPos(el) {
  • if (ie5) {
  • if (el.currentStyle.top == "auto")
  • return 0;
  • else
  • return parseInt(el.currentStyle.top);
  • }
  • else {
  • return el.style.pixelTop;
  • }
  • }
  • function makeOnTop(el) {
  • var daiz;
  • var max = 0;
  • var da = document.all;
  • for (var i=0; i<da.length; i++) {
  • daiz = da[i].style.zIndex;
  • if (daiz != "" && daiz > max)
  • max = daiz;
  • }
  • el.style.zIndex = max + 1;
  • }
  • if (document.all) { //This only works in IE4 or better
  • document.onmousedown = moveme_onmousedown;
  • document.onmouseup = moveme_onmouseup;
  • document.onmousemove = moveme_onmousemove;
  • }
  • document.write("<style>");
  • document.write(".moveme {cursor: move;}");
  • document.write(".handle {cursor: move;}");
  • document.write("</style>");
  • </script>
  • <style>
  • <!--
  • #testDiv {position: relative; height: 50px; width: 300px;
  • border: 2 outset white; background: lightyellow; margin: 0px;}
  • #title {background: activecaption; font: caption; width: 100%;
  • color: captiontext; padding: 3px; margin: 0px;}
  • #inner {border: 2 inset white; margin: 0px; padding: 3px;height: 100%;}
  • -->
  • </style>
  • Dans le body :
  • <div id="testDiv">
  • <div class="handle" handlefor="testDiv" id="title">Titre de la fenêtre</div>
  • <div id="inner">
  • Le contenu de la fenêtre ici !
  • </div>
  • </div>
Dans le Head :
<script>
//  by Erik Arvidsson for WebFX at http://webfx.eae.net  
var checkZIndex = true;
var dragobject = null;
var tx;
var ty;
var ie5 = document.all != null && document.getElementsByTagName != null;
function getReal(el) {
temp = el;
while ((temp != null) && (temp.tagName != "BODY")) {
	if ((temp.className == "moveme") || (temp.className == "handle")){
	el = temp;
	return el;
	}
	temp = temp.parentElement;
}
	return el;
}
function moveme_onmousedown() {
	el = getReal(window.event.srcElement)
	if (el.className == "moveme" || el.className == "handle") {
	if (el.className == "handle") {
	tmp = el.getAttribute("handlefor");
	if (tmp == null) {
	dragobject = null;
	return;
	}
	else
	dragobject = eval(tmp);
	}
	else 
	dragobject = el;
	if (checkZIndex) makeOnTop(dragobject);
	ty = window.event.clientY - getTopPos(dragobject);
	tx = window.event.clientX - getLeftPos(dragobject);
	window.event.returnValue = false;
	window.event.cancelBubble = true;
	}
	else {
	dragobject = null;
	}
}

function moveme_onmouseup() {
	if(dragobject) {
	dragobject = null;
	}
}

function moveme_onmousemove() {
	if (dragobject) {
	if (window.event.clientX >= 0 && window.event.clientY >= 0) {
	dragobject.style.left = window.event.clientX - tx;
	dragobject.style.top = window.event.clientY - ty;
	}
	window.event.returnValue = false;
	window.event.cancelBubble = true;
	}
}

function getLeftPos(el) {
	if (ie5) {
	if (el.currentStyle.left == "auto")
	return 0;
	else
	return parseInt(el.currentStyle.left);
	}
	else {
	return el.style.pixelLeft;
	}
}

function getTopPos(el) {
	if (ie5) {
	if (el.currentStyle.top == "auto")
	return 0;
	else
	return parseInt(el.currentStyle.top);
	}
	else {
	return el.style.pixelTop;
	}
}

function makeOnTop(el) {
	var daiz;
	var max = 0;
	var da = document.all;
	for (var i=0; i<da.length; i++) {
	daiz = da[i].style.zIndex;
	if (daiz != "" && daiz > max)
	max = daiz;
	}
	el.style.zIndex = max + 1;
}

if (document.all) { //This only works in IE4 or better
	document.onmousedown = moveme_onmousedown;
	document.onmouseup = moveme_onmouseup;
	document.onmousemove = moveme_onmousemove;
}

document.write("<style>");
document.write(".moveme	{cursor: move;}");
document.write(".handle	{cursor: move;}");
document.write("</style>");
</script>
<style>
<!--
#testDiv {position: relative;  height: 50px; width: 300px;
	 border: 2 outset white; background: lightyellow; margin: 0px;}
#title	{background: activecaption; font: caption; width: 100%;
	color: captiontext; padding: 3px; margin: 0px;}
#inner	{border: 2 inset white; margin: 0px; padding: 3px;height: 100%;}
-->
</style>

Dans le body :
<div id="testDiv">
<div class="handle" handlefor="testDiv" id="title">Titre de la fenêtre</div>
<div id="inner">
Le contenu de la fenêtre ici !
</div>
</div> 

Conclusion

Amusez-vous bien ! :)
 

Commentaires et avis

signaler à un administrateur
Commentaire de didwee le 17/12/2001 23:27:05

Génial cela marche très bien, mais si quelqu'un pourais m'aider à centré cette fenêtre flotante au lieu qu'elle soie allignié en haut à gauche ce serais vraiment top.  Mon mail à tout hasard est didwee@skynet.be Merci à vous.

signaler à un administrateur
Commentaire de pyroflo le 13/04/2003 21:48:13

Pour la centrer :

&lt;center&gt;
&lt;div id="testDiv"&gt;
&lt;div class="handle" handlefor="testDiv" id="title"&gt;Titre de la fenêtre&lt;/div&gt;
&lt;div id="inner"&gt;
Le contenu de la fenêtre ici !
&lt;/div&gt;
&lt;/div&gt;
&lt;/center&gt;

Et c'est tout !!!

Pyroflo
http://www.abcpyro.fr.st

signaler à un administrateur
Commentaire de lukacs le 03/09/2003 20:53:32

Cool :)

signaler à un administrateur
Commentaire de Rey66 le 05/10/2005 07:12:10

cest bien ce scripte, mais qqn peut m'aidé pour fair la meme chose avec une popup (en javascripte)qui sera apelet par une iframe?
mon problem est que jai placé le lien d'appel de popup dans une ifram et quond je vai l'apelé le popup il prond une position en raport avec la position du ifram, donc si je deplace le assenceur de fenetre dans iframe le popup s'ouvre dans un mauvese position et le visiteur ne peut pas la consulter le contenue de cel ci.
j'ai pensé que si je peut adapter ce fonction mon popup restera toujour dans le même hauteur , mais je ne sais pas ou je peut metre le code parce que mon popup c'est n'est pas une fenetre en html, mais c'est une sorte de fenetre (slide)en javascript, donc n'a pas les balise <head> et <body>
merci en avance

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.