cs_superpl
Messages postés2Date d'inscriptionmercredi 27 février 2008StatutMembreDernière intervention14 août 2009
-
12 août 2009 à 12:08
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 2015
-
14 août 2009 à 14:06
Bonjour. Je programme un webos, dont le noyeau est inspiré d'un tutoriel sur "le site du zero", mais je rencontre un probleme : j'ai mis une icone, et depuis j'ai un soucis : quand je bouge la fenetre, il y a a un decalage avec la souris, dépendant de la taille de l'icone . J'ai caché le problème en corrigeant le décalage
( dX (x+3) - eX; dY (y+67) - eY : 3 et 63 sont le décalage), mais la fenetre ne s'agrandit pas !
voici le code principal :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML ><HEAD><TITLE>Fenêtre</TITLE>
<META http-equiv=Content-type content="text/html; charset=utf-8">
<script type="text/javascript">var dragged = null;
<!--
function Open(){
document.getElementById("Windows").style.display = "block";
}
var dX, dY;
function start_drag(objet,event)
{
if( objet.max) return; //on quitte la fonction
dragged = objet;
event.returnValue = false;
if( event.preventDefault ) event.preventDefault();
//Coordonnées de la souris
var x = event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
var y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
//Coordonnées de l'élément
var eX = 0;
var eY = 0;
var element = objet;
do
{
eX += element.offsetLeft;
eY += element.offsetTop;
element = element.offsetParent;
} while( element && getCssStyleValue(element, 'position') != 'absolute');
//Calcul du décallage
dX = (x+3) - eX;
dY = (y+67) - eY;
}
function min_max(fenetre)
{
if( ! fenetre.max )
{
fenetre.max = true;
fenetre.oldTop = fenetre.style.top;
fenetre.oldLeft = fenetre.style.left;
fenetre.oldWidth = fenetre.style.width;
fenetre.oldHeight = fenetre.style.height;
fenetre.style.top = 0;
fenetre.style.left = 0;
fenetre.style.width = '100%';
fenetre.style.height = '100%';
}
else
{
fenetre.max = false;
fenetre.style.top = fenetre.oldTop;
fenetre.style.left = fenetre.oldLeft;
fenetre.style.width = fenetre.oldWidth;
fenetre.style.height = fenetre.oldHeight;
}
}
function close(fenetre)
{
//fenetre.parentNode.removeChild(fenetre);
//fenetre.style.display = 'none';
document.getElementById("Windows").style.display = "none";
}
function drag_onmousemove(event)
{
if( dragged )
{
var x = event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
var y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
//On applique le décalage
x -= dX;
y -= dY;
dragged.style.position = 'absolute';
dragged.style.left = x + 'px';
dragged.style.top = y + 'px';
}
}
function drag_onmouseup(event)
{
dragged = null; //On arrête le drag&drop
}
function addEvent(obj,event,fct)
{
if( obj.attachEvent)
obj.attachEvent('on' + event,fct);
else
obj.addEventListener(event,fct,true);
}
function getCssStyleValue(element /*element html*/, style/*style recherché*/)
{
if( element.currentStyle )
{
return element.currentStyle[style];
}
else
{
return window.getComputedStyle(element,null).getPropertyValue(style);
}
}
function drag_onmousedown (event)
{
var target = event.target || event.srcElement;
//On commence par trouver la fenêtre elle-même
var fenetre = target;
while( fenetre)
{
if( fenetre.className && fenetre.className.match(/\bwindow-base\b/g) )
{
break; //On arrête la boucle
}
fenetre = fenetre.parentNode;
}
if( !fenetre) //Si on est sorti de la boucle mais qu'on a trouvé aucune fenêtre, on abandonne
return;
//Maintenant, on part à la recherche d'un bouton déclencheur
var element = target;
while(element)
{
if( element.className)
{
if( element.className.match(/\bwindow-close\b/g))
{
close(fenetre);
break;
}
else if( element.className.match(/\bwindow-min-max\b/g) )
{
min_max(fenetre);
break;
}
else if( element.className.match(/\bwindow-move\b/g) )
{
start_drag(fenetre, event);
break;
}
}
element = element.parentNode;
}
//Mettre au premier plan
var elements = document.getElementsByTagName('*'); //On récupère tous les éléments de la page
var zIndex = 0;
for( var i=0; i < elements.length; i++)
{
zIndex = Math.max(zIndex,elements[i].style.zIndex);
}
fenetre.style.zIndex = zIndex + 1; //toujours plus haut que le plus haut
}
addEvent(document,'mousedown',drag_onmousedown);
addEvent(document,'mousemove',drag_onmousemove);
addEvent(document,'mouseup',drag_onmouseup);
a=0;
-->
</script>
<STYLE type=text/css>.window-base {
BORDER-RIGHT: #000 1px solid; BORDER-TOP: #000 1px solid; BORDER-LEFT: #000 1px solid; WIDTH: 400px; BORDER-BOTTOM: #000 1px solid; POSITION: absolute; HEIGHT: 200px; BACKGROUND-COLOR: #ddd; CURSOR: url("curseurs/Blue Obsession/normal.cur"), auto
}
.window-close {
FLOAT: right; BACKGROUND-COLOR: #00d ;
CURSOR: url("curseurs/Blue Obsession/main.cur"), auto
}
.window-min-max {
FLOAT: right; BACKGROUND-COLOR: #00d= ; CURSOR: url("curseurs/Blue Obsession/main.cur"), auto
}
.window-move {
WIDTH: 100%;CURSOR: url("curseurs/Blue Obsession/deplacements.cur"), auto; background-image:url("move.bmp"); HEIGHT: 30px; BACKGROUND-COLORe: #00d; color:white;
}
body{
CURSOR: url("curseurs/Blue Obsession/normal.cur"), auto;
background-image:url("fonds d'ecran/1.jpg");
}
html, html *
{
CURSOR: url("curseurs/Blue Obsession/normal.cur"), auto;
position:relative;
}
.img_fond
{
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
#background{position:absolute; z-index:1; width:100%; heigth:100%;}
#scroller{position:absolute; z-index:2; width:100%; heigth:100%; top:0; left:0; overflow:auto;}
#content{padding:5px 300px 20px 200px}
</STYLE>
<META content="MSHTML 6.00.2900.3395" name=GENERATOR></HEAD>
<script type="text/javascript">document.getElementById("Windows").style.display = "block";</script>
apparence
</OBJECT>
</HTML>
pour voir tous les fichiers, telechargez-les ici .
PS : Désolé s'il y a des div et des classes en trop, ils ont été supprimés, mais pas quand j'ai fait l'enregistrement .
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 12 août 2009 à 13:39
Bonjour,
>>Je programme un webos
ça doit être bien.
même je ne sais pas ce que c'est !
>>pour voir tous les fichiers, telechargez-les
parce qu'en plus de ce que vous nous mettez
il manque des choses ?
ne vous étonnez pas de ne pas avoir de réponses
cernez un ch'tiot poil mieux votre souci
là, vous donnez l'impression d'avoir
récupérer je ne sais quoi je ne sais où
et de nous dire : tiens voilà tout et démerdez-vous
cs_superpl
Messages postés2Date d'inscriptionmercredi 27 février 2008StatutMembreDernière intervention14 août 2009 14 août 2009 à 13:27
1/ un webos est comme un os, c'est à dire qu'il imite un windows .
2/ je ne peut pas tout mettre : les seuls codes externes sont helloworld (le corps de l'application ouverte grace à l'icone), qui inclut un autre code js .
Les autres fichiers sont des fonds d'écrans, des packs d'icones et des images utilisés (ou non mais vont etre utilisé: je n'ai pas enlevé les fichiers jusque là inutilisés), que je ne peut pas mettre.
Mais on peut tester le code en mettant une icone 50x50, et toutes les autres images citéés dans le code principal (on s'en fiche de helloworld)
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 14 août 2009 à 14:06
>>un webos est comme un os, c'est à dire
>>qu'il imite un windows
sur le web ??? ???
vous êtes trop fort pour moi :
vous êtes en concurrence avec google ?
( qui n'est en fait pas en concurrence avec un
OS au sens strict, d'après ce que je lis !!!! )
mais franchement, vous vous trompez de langage !!!!!
assembleur, c[++] ... me semblent indispensables
>>je ne peut pas tout mettre
ah ben alors, vous allez avoir du mal à ce qu'on
corrige vos erreurs
handicapé nasal (**) faites donc l'extrait
de ce qui pose problème, on devrait pouvoir
vous aider à aller plus loin !