modification pour ajout d'un script de scroll en JS

Bonjour,

plutôt qu'avoir un vilain scrollbar windows, je voulais modifier le code du template de pluxml afin d'y insérer un JS trouvé sur internet.

alors le script JS ça j'ai su inséré très facilement ainsi que le onload mais pour fonctionner il faut mettre différents div dans le code de PluXML et c'est là que ça a l'air de coincer impossible de faire disparaître les scrollbars et de faire apparaître le script JS fonctionnant.

Ci dessus le code exemple d'une page HTML où ce script fonctionne.
Si quelqu'un peut m'aider à l'intégrer dans PluXML, un tout grand merci.
<html>
<head>
<title>Untitled</title>
<!-- JAVASCRIPT DU TEXTE DEFILANT ----------------------------------------------------->
<style type="text/css">
#divControl {position:relative; left:397px; top:128px; width:30px; font-size:10px; font-family:verdana; visibility:hidden;}
#divcontenue  {position:relative;}
#divCont    {position:absolute; left:20px; top:12px; width:367px; height:327px; clip:rect(0px 367px 326px 0px);}
.clScroll   {position:absolute; font-size:10px; font-family:verdana; visibility:hidden;}
</style>


<script language="JavaScript" type="text/javascript">
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->




function lib_bwcheck(){ //Browsercheck (needed)
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.opera5=(navigator.userAgent.indexOf("Opera")>-1 && document.getElementById)?1:0
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	return this
}
var bw=lib_bwcheck()


//The speed of the timeout between each scroll.
timSpeed = 30

//The height of the container (change this when it scrolls to much or to little)
contHeight = 320

function makeScrollObj(obj,nest){
	nest=(!nest) ? "":'document.'+nest+'.'		
	this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
  	this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;		
	this.height=bw.ns4?this.css.document.height:this.el.offsetHeight
	this.top=b_gettop										
	return this
}

var px = bw.ns4||window.opera?"":"px";

function b_gettop(){
	var gleft=(bw.ns4 || bw.ns6)?parseInt(this.css.top):eval(this.css.pixelTop);
	return gleft;
}

var scrollTim = 1;
var active = 0;
function scroll(speed){
	clearTimeout(scrollTim)
	way = speed>0?1:0
	if ((!way && oScroll[active].top()>-oScroll[active].height+contHeight) || (oScroll[active].top()<0 && way)){
		oScroll[active].css.top = (oScroll[active].top()+speed)+px
		scrollTim = setTimeout("scroll("+speed+")",timSpeed)
	}
}

function noScroll(){
	clearTimeout(scrollTim)
}


function scrollInit(){
	oScroll = new Array()

	oScroll[0] = new makeScrollObj('divScroll1','divCont')
	
	oScroll[0].css.left = 0+px
	oScroll[0].css.top = 0+px
	oScroll[0].css.visibility = "visible"
	oControl = new makeScrollObj('divControl')
	oControl.css.visibility = "visible"
}
</script>
<!-- FIN JAVASCRIPT DU TEXTE DEFILANT ----------------------------------------------------->
</head>
<body onLoad="MM_preloadImages('images/haut2.gif','images/bas2.gif');scrollInit();">

                        <div id="divcontenue"> 
                          <div id="divCont"> 
                            <div id="divScroll1" class="clScroll"> 
                              <div align="justify"> 
                                <!-- FIN NE PAS TOUCHER -->
                                <!-- PLACEZ LE TEXT DU CONTENU DE LA RUBRIQUE ICI-->
                                Placez un text ici sans vous préoccuper de sa 
                                longueur, vous pouvez également y mettre des images, 
                                des liens etc...<br>
                                <br>
                                Voici un text d'exemple : <br>
                                <br>
                                Occulté par les grands médias, un document décisif 
                                est passé inaperçu : le rapport (1) publié par 
                                l'Organisation internationale du travail (OIT) 
                                dénonçant le fait que, chaque année dans le monde, 
                                270 millions de salariés sont victimes d'accidents 
                                du travail et que 160 millions contractent des 
                                maladies professionnelles. L'étude révèle que 
                                le nombre de travailleurs morts dans l'exercice 
                                de leur métier dépasse, par an, les deux millions... 
                                Chaque jour, donc, le travail tue 5 000 personnes 
                                ! « Et ces chiffres, signale le rapport, sont 
                                au-dessous de la réalité (2). » <br>
                                <br>
                                En France, chaque année, selon la Caisse nationale 
                                d'assurance-maladie (CNAM), 780 salariés sont 
                                également tués par leur travail (plus de 2 par 
                                jour !). Là aussi, « les chiffres sont sous-estimés 
                                ». Et il y a 1 350 000 accidents du travail environ 
                                (3), ce qui correspond à 3 700 victimes par jour, 
                                soit, pour une journée de huit heures, à 8 blessés 
                                par minute...<br>
                                <br>
                                Cette souffrance silencieuse, cette redevance 
                                versée à la croissance et à la compétitivité, 
                                les défenseurs du peuple l'appelaient jadis : 
                                l'« impôt du sang (4) ». A l'heure de se pencher 
                                sur la question des retraites, il convient de 
                                garder ce tribut en mémoire. Et de songer aux 
                                centaines de milliers de salariés qui n'atteignent 
                                la fin de leur vie active qu'usés, échinés, délabrés. 
                                Sans pouvoir profiter de leur troisième âge. Car, 
                                si l'espérance de vie a augmenté, cela se traduit 
                                aussi, en raison des séquelles de l'activité professionnelle, 
                                par une explosion des maladies du retraité : cancers, 
                                affections cardiovasculaires, dépressions, attaques 
                                cérébrales, handicaps sensoriels, arthrose, démences 
                                séniles, Alzheimer, etc.<br>
                                <br>
                                Cela rend particulièrement répugnante l'attaque 
                                contre le régime des retraites. Une attaque coordonnée, 
                                entraînée par les moteurs de la mondialisation 
                                libérale (5) - G8, Banque mondiale (6), OCDE (7) 
                                - qui, depuis les années 1970, conduisent une 
                                offensive contre la Sécurité sociale (8) et l'Etat-providence. 
                                Relayée par l'Union européenne, dont les chefs 
                                d'Etat et de gouvernement, de droite et de gauche 
                                (M. Chirac et M. Jospin pour la France), ont décidé, 
                                lors du sommet de Barcelone, en mars 2002, de 
                                repousser de cinq ans l'âge de départ à la retraite 
                                (9). Ce qui suppose une sérieuse régression sociale, 
                                et l'abandon du projet de bâtir des sociétés plus 
                                équilibrées et plus égalitaires.<br>
                                <br>
                                Alors que les classes moyennes sont laminées, 
                                appauvries, la richesse continue de se concentrer 
                                au sommet : il y a trente ans, un patron touchait 
                                environ quarante fois le salaire moyen d'un travailleur 
                                ; aujourd'hui, il gagne mille fois plus (10)... 
                                Et peut voir venir, sans inquiétude, l'heure de 
                                la cessation d'activité. Ce qui est loin d'être 
                                le cas des salariés ordinaires, en particulier 
                                des enseignants. <br>
                                <br>
                                Par centaines de milliers, en Italie, en Espagne, 
                                en Allemagne, en Grèce, en Autriche, en France, 
                                ceux-ci ont donc multiplié les arrêts de travail 
                                pour protester contre le démantèlement du système 
                                des retraites, qu'il faut par ailleurs réformer. 
                                Parce que le nombre d'actifs diminue, alors qu'augmente 
                                celui des retraités. Et parce que le poids des 
                                pensions, égal à 11,5 % du PIB, représentera 13,5 
                                % en 2020, 15,5 % en 2040, et deviendra une charge 
                                importante pour la société.<br>
                                <br>
                                Malgré la crise boursière, qui a fait perdre plus 
                                de 20 % de leur valeur aux fonds de pension (11), 
                                l'option d'une retraite par capitalisation n'est 
                                pas écartée. Elle l'est d'autant moins que la 
                                réforme du système par répartition n'est envisagée 
                                qu'aux dépens des salariés. Comme s'il ne s'agissait 
                                que d'un problème technique, sans conséquences 
                                pour l'ensemble de la société. Toutes les variables 
                                - montant et allongement des cotisations, âge 
                                de départ à la retraite, montant des pensions 
                                - sont modifiées systématiquement au détriment 
                                du salarié et des revenus du travail. Aucune solution 
                                alternative, mettant à contribution les entreprises 
                                ou taxant les profits financiers, n'a été retenue.<br>
                                <br>
                                On estime normal que deux salariés français perdent 
                                leur vie au travail chaque jour, et que huit autres 
                                soient sacrifiés par minute au bien-être des entreprises. 
                                Mais pas que celles-ci, ni le capital, participent 
                                davantage aux retraites des personnels. Comment 
                                ne pas comprendre la colère des citoyens ?<br>
                                <br>
                                <!-- FIN -->
                              </div>
                            </div>
                          </div>
                        </div>
                        <div id="divControl"><a href="#" onmouseover="scroll(5)" onmouseout="noScroll()" onclick="return false"><img src="images/haut1.gif" name="Image1" width="15" height="18" border="0" id="Image1" onMouseOver="MM_swapImage('Image1','','images/haut2.gif',1)" onMouseOut="MM_swapImgRestore()"></a><br>
                          <a href="#" onmouseover="scroll(-5)" onmouseout="noScroll()" onclick="return false"><img src="images/bas1.gif" name="Image2" width="15" height="18" border="0" id="Image2" onMouseOver="MM_swapImage('Image2','','images/bas2.gif',1)" onMouseOut="MM_swapImgRestore()"></a></div></td></tr></table>
									
											
									
                  <!-- FIN -->

</body>
</html>

Réponses

  • Salut jmdhave

    J'ai pris une approche différente de la tienne pour faire plus simple (et çà fonctionne)

    J'ai crée un article, je lui ai collé "dans le contenu" l'intégralité de ton code (sans les 4 premières lignes de balises: <html><head><title> et <!-- JAVASCRIPT DU, ni les 2 dernières: </body et </html>).

    Aucun problème; bien entendu il te faudra personnaliser les variables de la vitesse et celui de la hauteur pour l'accorder sur ton texte mais çà marche et sans bricoler le template ! voila pourquoi:

    Si tu injecte ce système dans un template, l'effet se produira sur TOUT les articles et non uniquement sur un seul (comme tu dois le désirer)...
  • Merci je vais regarder mais je ne suis pas sûr que cela fasse ce que je désire, je désire que ça le fasse avec un scroll sur l'entièreté du while pluxml <div id="content"> et à la place du moche scrollbar d'IE ou Firefox.
  • A ? ben non ! tu a juste les 2 petites images pour indiquer le sens "montant/descendant" (que j'ai gicler pour y mettre du texte à la place" mais çà ne fait pas un scrool-bar à la façon IE sur le bord droit du texte...

    De plus, j'ai vérifier avec l'excellent diagnostiqueur "Firefox" et on s'aperçois que çà fout en l'air la validation xhtml strict1 ! surtout au niveau des balises du script, il faudrais le transcrire en .js et faire un appel sur ce .js dans l'entête de l'article ou tu veux faire cet effet...

    c'est pas gagné d'avance :(
    cherche voir s'il n'y a pas un autre script plus souple sur la toile car des qu'on s'attaque à l'intégration de script dans xhtml, çà deviens plus coriace.

    cordialement
Connectez-vous ou Inscrivez-vous pour répondre.