J'ai trouvé et adapté ce script qui peut je pense intéresser bcp de monde, car il permet un gain de place évident. Le principe : faire défiler un long texte dans un petit cadre, les parties du texte dépassant étant masquées. Le defilement est provoqué par le survol d'une zone haut et bas et s'arrête dès que les limites du texte sont atteintes selon le sens de défilement. Le site wanadoo en utilise un similaire pour faire défiler ses news.
Le pb est que ce script ne fonctionne que sous IE puisqu'il utilise l'instruction périmée document.all. J'ai essayé de la remplacer par getElementById mais je débute en javascript et ça ne fonctionne pas.
Voici le script :
Voilà, si quelqu'un peut le rendre compatible avec les autres navigateurs, ça serait génial. Merci d'avance.
EDIT par Felipe
Modifié par Felipe (28 Aug 2005 - 10:01)
Le pb est que ce script ne fonctionne que sous IE puisqu'il utilise l'instruction périmée document.all. J'ai essayé de la remplacer par getElementById mais je débute en javascript et ça ne fonctionne pas.
Voici le script :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transational//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transational.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<title>bloc defilant</title>
<meta name="DC.Resource Identifier" content="" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15" />
<meta http-equiv='expires' content='Tue, 01 Jan 1980 01:00:00 GMT' />
<meta http-equiv="pragma" content=" no-cache " />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" media="screen" />
<STYLE type="text/css">
* {
font-family : Arial, Helvetica, Verdana, sans-serif;
font-size : 12px;
}
h1 {
font-weight: bold;
font-size: 16px;
color:#FFFFFF;
background-color:#9FC3F5;
text-align: center;
}
#divCadre {
position: absolute;
width:195px;
height:150px;
left: 150px;
top: 130px;
border: 1px solid #2F63BA;
}
#divContainer {
position: absolute;
width:200px;
height:150px;
left: 170px;
top: 170px;
clip:rect(0px 190px 100px 0px);
}
#divTexte{position:absolute;
top:10px;
left:10px;
right:30px;
}
.fleches {
position:absolute;
top:170px;
left:300px;
}
</style>
<script language="JavaScript" type="text/javascript">
var vitesse=50;
var loop, timer;
function creerObj(obj,cont){
this.css=document.all[obj].style;
this.scrollHeight=document.all[obj].offsetHeight;
this.clipHeight=document.all[obj].offsetHeight;
this.haut=haut;
this.bas=bas;
this.deplace=deplace;
this.x=0;
this.y=0;
eval(this.obj+'=this');
return this;
}
function deplace(x,y){
this.x=x;
this.y=y;
this.css.left=this.x
this.css.top=this.y
}
function bas(v){
if(this.y>Container.clipHeight-this.scrollHeight){
this.deplace(0,this.y-v)
if(loop) setTimeout(this.obj+".bas("+v+")",vitesse)
}
}
function haut(v){
if(this.y<0){
this.deplace(0,this.y-v)
if(loop) setTimeout(this.obj+".haut("+v+")",vitesse)
}
}
function go(vitesse){
loop=true;
if(vitesse>0) Texte.bas(vitesse);
else Texte.haut(vitesse);
}
function stop(){
loop=false;
if(timer) clearTimeout(timer);
}
function Init(){
Container=new creerObj('divContainer','');
Texte=new creerObj('divTexte','divContainer');
Texte.deplace(0,0);
}
</script>
</head>
<body onload="Init()">
<div id="divCadre">
<h1>INFOS</h1>
</div>
<div id="divContainer">
<div id="divTexte">
Les nouvelles du jour<br />
Les nouvelles du jour<br />
Les nouvelles du jour<br />
Les nouvelles du jour<br />
Les nouvelles du jour<br />
Les nouvelles du jour<br />
Les nouvelles du jour<br />
Les nouvelles du jour<br />
Les nouvelles du jour<br />
Les nouvelles du jour<br />
Les nouvelles du jour<br />
Les nouvelles du jour<br />
Les nouvelles du jour<br />
Les nouvelles du jour<br />
Les nouvelles du jour<br />
Les nouvelles du jour<br /><br />
</div>
</div>
<div class=fleches>
<a href="javascript:void(0)" onmouseover="go(2)"
onmouseout="stop()">[haut]</a> <br /> <br />
<a href="javascript:void(0)" onmouseover="go(-2)"
onmouseout="stop()">[bas]</a>
</div>
</body>
</html>
Voilà, si quelqu'un peut le rendre compatible avec les autres navigateurs, ça serait génial. Merci d'avance.

EDIT par Felipe
Modifié par Felipe (28 Aug 2005 - 10:01)