![]() |
Forum SELFHTML: Archives: |
|
|
Le message suivant est de: Antoine,
antoinebrunet90@hotmail.com, 18. 11. 2003, 16:23
Bonjour,
j'utilise une fonction pour positionner un calque en fonction de la résolution d'écran mais ma page ne s'affiche pas sur Mac et Opera, je ne comprends pas :
<SCRIPT>
<!-- détection de la résolution d''écran
function affichecalque (Layer1)
{
if (screen.width == 800) {
document.getElementById(Layer1).style.position="absolute"; document.getElementById(Layer1).style.width=411;
document.getElementById(Layer1).style.height=300;
document.getElementById(Layer1).style.left=366;
document.getElementById(Layer1).style.top=318;
}
else {
document.getElementById(Layer1).style.position="absolute"; document.getElementById(Layer1).style.width=411;
document.getElementById(Layer1).style.height=300;
document.getElementById(Layer1).style.left=456;
document.getElementById(Layer1).style.top=318;
}}
</script>
besoin d'aide !!!!!!
Le message suivant est de: DavidB,
DavidB863917134@aol.com, 18. 11. 2003, 17:32
bonjour,
Les calques (layers) sont une particularite Netscape, et il n'y a que lui qui les comprend. voir http://selfhtml.selfhtml.com.fr/html/calques/definir.htm#generalites si tu veux quelque chose de compatible pour tous les navigateurs utilise les feuilles de styles CSS.
Bon courage,
David.
»» Bonjour,
»» j'utilise une fonction pour positionner un calque en fonction de la résolution d'écran mais ma page ne s'affiche pas sur Mac et Opera, je ne comprends pas :
»» <SCRIPT>
»» <!-- détection de la résolution d''écran
»» function affichecalque (Layer1)
»» {
»» if (screen.width == 800) {
»» document.getElementById(Layer1).style.position="absolute"; document.getElementById(Layer1).style.width=411;
»» document.getElementById(Layer1).style.height=300;
»» document.getElementById(Layer1).style.left=366;
»» document.getElementById(Layer1).style.top=318;
»» }
»» else {
»» document.getElementById(Layer1).style.position="absolute"; document.getElementById(Layer1).style.width=411;
»» document.getElementById(Layer1).style.height=300;
»» document.getElementById(Layer1).style.left=456;
»» document.getElementById(Layer1).style.top=318;
»» }}
»» </script>
»» besoin d'aide !!!!!!
Le message suivant est de: Patrick Andrieu,
nospam@nospam.fr, 19. 11. 2003, 13:31
http://www.selfhtml.com.fr/equipe/patrick.htm
Salut toi!
»» Les calques (layers) sont une particularite Netscape, et il n'y a que lui qui les comprend. voir http://selfhtml.selfhtml.com.fr/html/calques/definir.htm#generalites
Correct, mais certains parlent de calques ayant en tête des DIVs. Ce sont des calques aussi, si on veut, puisqu'on peut les superposer également, les positioner où on veut. Il peut avoir un DIV avec une id="Layer1"...
MS de Francfort sur le Main,
Patrick

Le message suivant est de: David,
DavidB863917134@aol.com, 19. 11. 2003, 15:02
Lut Patrick!
j'avais pas penser a ca, bien vu. bon si les gens commence a employer des mots reserves a d'autres applications on va plus s'en sortir, soyez originaux et mettez des noms Francais dans vos scripts ou arretez de pomper n'importe où vos codes sans savoir ce que vous faites.
Sinon comment ca va a Franckfurt? on te voit pas souvent, surcharge de travail?
allez @+
David.
»» Salut toi!
»» »» Les calques (layers) sont une particularite Netscape, et il n'y a que lui qui les comprend. voir http://selfhtml.selfhtml.com.fr/html/calques/definir.htm#generalites
»» Correct, mais certains parlent de calques ayant en tête des DIVs. Ce sont des calques aussi, si on veut, puisqu'on peut les superposer également, les positioner où on veut. Il peut avoir un DIV avec une id="Layer1"...
»» MS de Francfort sur le Main,
»» Patrick
Le message suivant est de: Patrick Andrieu,
nospam@nospam.no, 18. 11. 2003, 17:53
http://www.selfhtml.com.fr/equipe/patrick.htm
Salut Antoine!
Je suis au travail et ne dispose que de IE 5.5, mais je peux déjà te dire ce qui à mon avis ne va pas dans ton code :-)
1.) »» <SCRIPT>
<script type="text/javascript">
2.) Accolades:
Habitue-toi à coder propre. Soit tout comme ceci:
fonction faisqqch() {
if condition {
commande;
commande;
} else {
autre_commande;
autre_commande;
}
}
ou tout comme ceci:
fonction faisqqch()
{
if condition
{
commande1;
commande2;
}
else
{
autre_commande1;
autre_commande2;
}
}
mais jamais un mix illisible d'accolades perdues on ne sait où :)
3.) Unités
en CSS, il faut indiquer les unités de mesure. Si IE affiche des dimensions même si l'unité n'est pas indiquée, c'est son problème, mais les navis qui se tiennent aux standards en ont généralement besoin. Donc:
document.getElementById(Layer1).style.width="411px";
4.) screen.width
Avec screen.width, tu demandes la largeur de l'écran. Dans ton exemple, tu demandes si l'écran a une largeur de 800px. Selon la réponse, tu positionnes ton layer différemment, en fait, de 90 px plus à droite du bord gauche de la fenêtre. Et pour ceux qui ont de plus petits écrans? Et pour ceux qui ont deux moniteurs côte à côte et dont screen.width te livrera des valeurs comme 2248 ou plus?... Tu vois bien que screen.width n'est pas trop adapté à ce genre de choses! Il te faut demander la largeur du document...
Sinon, dès que j'ai un Opéra sous la main (tu oublies aussi de dire de quelle version il s'agit, pour Opéra c'est important, car les sauts entre les versions sont énorme: Opéra 5 ne comprend rien par rapport à Opéra 7. par exemple), je m'occuperai de ton problème!
MS de Francfort sur le Main,
Patrick

Le message suivant est de: Patrick Andrieu,
nospam@nospam.fr, 19. 11. 2003, 14:29
http://www.selfhtml.com.fr/equipe/patrick.htm
Rebonjour!
La plus grosse faute sur ton code, je ne l'avais pas vue!
<SCRIPT>
<!-- détection de la résolution d''écran
^^^^
Ceci est un commentaire HTML (en HTML, il faut même le fermer avec -->). Pour commenter en JavaScript, il faut utiliser le double slash (pour une ligne) ou /* long commentaire */ sur plusieurs lignes!
Exemple:
<script type="text/javascript">
// détection de la résolution d''écran - ceci est une ligne commentée
/* Auteur:
Patrick Andrieu
http://www.atomic-eggs.com/
et voici donc 4 lignes de commentaires */
</script>
Le seul commmentaire HTML autorisé dans l'espace <script ...>...</script> doit être fermé avant la balise </script> et doit être même masqué pour les très vieux Netscape (3.x):
<script language="JavaScript" type="text/javascript">
<!-- hide for old browsers
// commentaires ...
function va() {
alert('coucou');
}
//-->
</script>
Et voici un exemple fonctionnant avec IE 6, Mozilla 1.1, Opera 6.5, Opera 7.03 et 7.11. Pourquoi cependant Opera 6 ignore-t-il les déclartions CSS, aucune idée. Sur d'autres pages de mon site, il n'y a aucun problème. Peut-être qqn a-t-il une idée?
<html>
<head>
<title>Antoine</title>
<style type="text/css">
#Layer1 {
border : 1px dashed red;
position : absolute;
visibility : hidden;
background-color: yellow;
}
</style>
<script type="text/javascript">
<!-- hide for oldies
// détection de la résolution d''écran
function affichecalque () {
if (screen.width == 800) {
document.getElementById('Layer1').style.visibility="visible";
// document.getElementById(Layer1).style.position="absolute";
document.getElementById(Layer1).style.width="411px";
document.getElementById(Layer1).style.height="300px";
document.getElementById(Layer1).style.left="366";
document.getElementById(Layer1).style.top="318px";
}
else {
document.getElementById('Layer1').style.visibility="visible";
// document.getElementById('Layer1').style.position="absolute";
document.getElementById('Layer1').style.width="411px";
document.getElementById('Layer1').style.height="300px";
document.getElementById('Layer1').style.left="456px";
document.getElementById('Layer1').style.top="318px";
}
}
// alert(screen.width);
// -->
</script>
</head>
<body>
<div id="Layer1">test<br>test<br></div><br>
<br>
<a href="#" onClick="affichecalque()">Afficher</a>
</body>
</html>
MS de Francfort sur le Main,
Patrick

© 1998-2004
selfhtml@fr.selfhtml.org