salutà tous,
je suis nul en javascript, mais là je dois absolument m'en servir.
j'arrive à faire ce que je veux (une page centrée avec deux banières verticales qui suivent le scroll de la page et se positionnent en haut ou en bas selon la taille de la fenetre)
donc comme ça ça marche :
sauf que le navigateur me lit la page en mode quirk...
si j'insère le script dans le <head></head>
il ne marche plus par contre là, compliance ok (et donc javascript erreur)
du coup j'ai reconstruit mon truc en essayant de respecter les normes et en externalisant mon code js et j'en suis maintenant là :
script.js :
la page :
les styles
evidemment ça marche pas...
il me met une erreur de syntaxe ici -> function Startr() {
bon je perds mes cheveux,
trop de subtilités de jS et xml m'échappent
HELP ! merci
Modifié par arcmau (23 Apr 2007 - 12:08)
je suis nul en javascript, mais là je dois absolument m'en servir.
j'arrive à faire ce que je veux (une page centrée avec deux banières verticales qui suivent le scroll de la page et se positionnent en haut ou en bas selon la taille de la fenetre)
donc comme ça ça marche :
<SCRIPT language="javascript">
// PARAMETRAGE DU SCRIPT
var topming=200;
var hauteurming=724;
var topminr=0;
var hauteurminr=524;
var tjs_delai=20;
var tjs_max=20;
var tjs_hauteur=0;
function PrintCalqueg(left,top,width,height,contenu) {
tjs_hauteur=height;
var Z="<DIV id='gauche' style='display:block;position:absolute;left:"+left+";top:"+top+";width:"+width+";height:"+height+"'>"+contenu+"</DIV>";
document.write(Z);
setTimeout("Startg()",tjs_delai);
}
function Startg() {
MoveLayer("gauche",GetTop("gauche", hauteurming, topming));
setTimeout("Startg()",tjs_delai);
}
function PrintCalquer(left,top,width,height,contenu) {
tjs_hauteur=height;
var Z="<DIV id='right' style='display:block;position:absolute;left:"+left+";top:"+top+";width:"+width+";height:"+height+"'>"+contenu+"</DIV>";
document.write(Z);
setTimeout("Startr()",tjs_delai);
}
function Startr() {
MoveLayer("right",GetTop("right", hauteurminr, topminr));
setTimeout("Startr()",tjs_delai);
}
function Debug() {
var obj=document.body
var Z="";
for (var i in obj) {
Z+=i+"="+obj[ i ]+"\n"; //les espaces sinon affiche italiq
}
alert(Z);
}
function MoveLayer(nom,top) {
if (document.getElementById) { //IE5 et NS6
document.getElementById(nom).style.top=top;
}
if ((document.all)&&(!document.getElementById)) { //IE4 seul
document.all[nom].style.top=top;
}
if (document.layers) { //NS4.X seul
document.layers[nom].top=top;
}
}
function GetTop(nom, hauteurmin, topmin) {
// Partie 1 : Récupération de la position du calque et de la page
if (document.getElementById) { //IE5
var pos=parseInt(document.getElementById(nom).style.top);
var wintop=parseInt(document.body.scrollTop);
var avail=document.body.clientHeight;
}
if ((document.getElementById)&&(!document.all)) { //NS6
var pos=parseInt(document.getElementById(nom).style.top);
var wintop=parseInt(window.pageYOffset);
var avail=window.innerHeight;
}
if ((document.all)&&(!document.getElementById)) { //IE4 seul
var pos=parseInt(document.all[nom].style.top);
var wintop=parseInt(document.body.scrollTop);
var avail=document.body.clientHeight;
}
if (document.layers) { //NS4.X seul
var pos=parseInt(document.layers[nom].top);
var wintop=parseInt(window.pageYOffset);
var avail=window.innerHeight;
}
// Partie 2 : Traitement de la position
if ((avail<hauteurmin)&&(wintop<hauteurmin-avail)) { var top=topmin;}
else if (avail>=hauteurmin) {
var delta=Math.ceil(((pos-topmin)-wintop)/3);
if (delta>tjs_max) {delta=tjs_max;}
if (delta<-1*tjs_max) {delta=-1*tjs_max;}
var top=pos-delta;
}
else {
var delta=Math.ceil((pos-(wintop+avail-tjs_hauteur)));
if (delta>tjs_max) {delta=tjs_max;}
if (delta<-1*tjs_max) {delta=-1*tjs_max;}
var top=pos-delta;
}
return top;
}
</SCRIPT>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<HEAD>
<TITLE>Logo qui reste en bas</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset= UTF-8">
<link href="site.css" rel="stylesheet" type="text/css">
<link href="style.css" rel="stylesheet" type="text/css">
</HEAD>
<BODY text="#000000" bgcolor="#FFFFFF" alink="#FF8C00" link="#FF8C00" vlink="#FF8C00">
<div id="global"><BR>
pour faire descendre avec le scroll deux banières verticales (après
les avoir dépassées en gardant l'image en haut d'cran si la taille de la fenêtre est assez grande).<BR>
Utilisez le scroll pour observez les déplacements de l'image.<BR>
<BR>
<SCRIPT language="javascript">
PrintCalqueg(0,0,200,524,"<IMG src='gauche.jpg' width=200 height=524 alt=''>");
PrintCalquer(770,0,200,524,"<IMG src='gauche.jpg' width=200 height=524 alt=''>");
</SCRIPT>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<div style="padding-left:250px;"> fin contenu</div>
</div>
</BODY></HTML>
sauf que le navigateur me lit la page en mode quirk...
si j'insère le script dans le <head></head>
il ne marche plus par contre là, compliance ok (et donc javascript erreur)
du coup j'ai reconstruit mon truc en essayant de respecter les normes et en externalisant mon code js et j'en suis maintenant là :
script.js :
var topming=200;
var hauteurming=724;
var topminr=0;
var hauteurminr=524;
var tjs_delai=20;
var tjs_max=20;
var tjs_hauteur=0;
window.onload = start();
function Start() {
MoveLayer("gauche",GetTop("gauche", hauteurming, topming));
MoveLayer("right",GetTop("right", hauteurminr, topminr));
setTimeout("Start()",tjs_delai);
}
function Debug() {
var obj=document.body;
var Z="";
for (var i in obj) {
Z+=i+"="+obj[ i ]+"\n"; //espaces ici pour eviter italik
}
alert(Z);
}
function MoveLayer(nom,top) {
if (document.getElementById) { //IE5 et NS6
document.getElementById(nom).style.top=top;
}
if ((document.all)&&(!document.getElementById)) { //IE4 seul
document.all[nom].style.top=top;
}
if (document.layers) { //NS4.X seul
document.layers[nom].top=top;
}
}
function GetTop(nom, hauteurmin, topmin) {
// Partie 1 : Récupération de la position du calque et de la page
if (document.getElementById) { //IE5
var pos=parseInt(document.getElementById(nom).style.top);
var wintop=parseInt(document.body.scrollTop);
var avail=document.body.clientHeight;
}
if ((document.getElementById)&&(!document.all)) { //NS6
var pos=parseInt(document.getElementById(nom).style.top);
var wintop=parseInt(window.pageYOffset);
var avail=window.innerHeight;
}
if ((document.all)&&(!document.getElementById)) { //IE4 seul
var pos=parseInt(document.all[nom].style.top);
var wintop=parseInt(document.body.scrollTop);
var avail=document.body.clientHeight;
}
if (document.layers) { //NS4.X seul
var pos=parseInt(document.layers[nom].top);
var wintop=parseInt(window.pageYOffset);
var avail=window.innerHeight;
}
// Partie 2 : Traitement de la position
if ((avail<hauteurmin)&&(wintophauteurmin-avail)) { var top=topmin;}
else if (avail>=hauteurmin) {
var delta=Math.ceil(((pos-topmin)-wintop)/3);
if (delta>tjs_max) {delta=tjs_max;}
if (delta<-1*tjs_max) {delta=-1*tjs_max;}
var top=pos-delta;
}
else {
var delta=Math.ceil((pos-(wintop+avail-tjs_hauteur)));
if (delta>tjs_max) {delta=tjs_max;}
if (delta<-1*tjs_max) {delta=-1*tjs_max;}
var top=pos-delta;
}
return top;
}
la page :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<HEAD>
<TITLE>Logo qui reste en bas</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset= UTF-8">
<link href="site.css" rel="stylesheet" type="text/css">
<link href="style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="script.js"></script>
</HEAD>
<BODY>
<div id="global"><DIV id="gauche"><IMG src="gauche.jpg" width=200 height=524 alt=""></DIV>
<DIV id="right"><IMG src="gauche.jpg" width=200 height=524 alt=""></DIV>
<BR>
pour faire descendre avec le scroll deux banières verticales (après les avoir
dépassées en gardant l'image en haut d'cran si la taille de la fenêtre est assez
grande).<BR>
Utilisez le scroll pour observez les déplacements de l'image.<BR>
<BR>
<BR>
...
les styles
body {
margin: 0;
text-align: center;
}
#global {
position: relative;
margin-left: auto;
margin-right: auto;
width: 980px;
text-align: left;
}
#gauche {display:block;position:absolute;left:0px;top:200px; width:200px;height:524px;}
#right {display:block;position:absolute;left:770px;top:0px; width:200px;height:524px;}
evidemment ça marche pas...
il me met une erreur de syntaxe ici -> function Startr() {
bon je perds mes cheveux,
trop de subtilités de jS et xml m'échappent
HELP ! merci
Modifié par arcmau (23 Apr 2007 - 12:08)