ovviamente lo stesso identico discorso vale per http://www.dynamicdrive.com/dynamici...staticmenu.htm
ovviamente lo stesso identico discorso vale per http://www.dynamicdrive.com/dynamici...staticmenu.htm
dopo circa 8 ore di lavoro continuativo sono giunto alla conclusione. Io uso Dreamweaver, e la creazione di un file html è così:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>
<body>
</body>
</html>
Io vorrei tanto sapere cosa significa quella DANNATA PRIMA RIGA (<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">) che, se presente, riesce a non far funzionare la pagina! Qualcuno saprebbe dirmi cosa significa, quando metterla, quando non metterla e perchè mi bloccava degli script in javascript?
quello è un doctype valido ed è buona cosa metterlo,
tra gli altri motivi perchè privo di esso ie6 lavora in quirk mode (modalità non pefettamente aderente agli standard del w3c)
in generale il grosso delle differenze riguarda i css, ma anche il DHTML ne è affetto (probabile motivo per cui alcuni tuoi script non funzionavano + specificando il doctype)
quale script volevi inserire nella pagina con il doctype?
quello del tuo primo post?
no, quello del primo post l'ho lasciato stare visto che era obsoleto. Ho optato per lo script consigliatomi daOriginariamente inviato da Xinod
quello è un doctype valido ed è buona cosa metterlo,
tra gli altri motivi perchè privo di esso ie6 lavora in quirk mode (modalità non pefettamente aderente agli standard del w3c)
in generale il grosso delle differenze riguarda i css, ma anche il DHTML ne è affetto (probabile motivo per cui alcuni tuoi script non funzionavano + specificando il doctype)
quale script volevi inserire nella pagina con il doctype?
quello del tuo primo post?
kaze scaricabile da http://www.dynamicdrive.com/dynamicindex1/davidmenu.htm che consiste in due file js e del codice nella pagina che deve avere il menu. Il codice della pagina è:
<STYLE>
<!--
A.ssmItems:link {color:black;text-decoration:none;}
A.ssmItems:hover {color:black;text-decoration:none;}
A.ssmItems:active {color:black;text-decoration:none;}
A.ssmItems:visited {color:black;text-decoration:none;}
//-->
</style>
<SCRIPT SRC="ssm.js" language="JavaScript1.2">
//Dynamic-FX slide in menu v6.5 (By maXimus, maximus@nsimail.com)
//Site: http://maximus.ravecore.com/
//For full source, and 100's more DHTML scripts, visit http://www.dynamicdrive.com
</script>
<SCRIPT SRC="ssmItems.js" language="JavaScript1.2"></script>
il resto è contenuto nei file js. tutto questo con il doctype non funzionava, se lo toglievo invece andava
Non ho visto i due script. (sono in un file .zip, e per aprirlo dovrei andare in emulazione windows).
Comunque dalla presentazione non e` il massimo della compatibilita`. Ad esempio la chiamata agli script e` obsoleta (come l'altro script).
Prova a vedere se funziona chiamando gli script con:
<SCRIPT SRC="ssm.js" language="JavaScript1.2" type="text/javascript">
Se gli script sono fatti bene come dicono, dovrebbero funzionare, altrimenti occorre lavorare sugli script
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
Se faccio le chiamate conOriginariamente inviato da Mich_
Non ho visto i due script. (sono in un file .zip, e per aprirlo dovrei andare in emulazione windows).
Comunque dalla presentazione non e` il massimo della compatibilita`. Ad esempio la chiamata agli script e` obsoleta (come l'altro script).
Prova a vedere se funziona chiamando gli script con:
<SCRIPT SRC="ssm.js" language="JavaScript1.2" type="text/javascript">
Se gli script sono fatti bene come dicono, dovrebbero funzionare, altrimenti occorre lavorare sugli script
<SCRIPT SRC="ssm.js" language="JavaScript1.2" type="text/javascript"></script>
<SCRIPT SRC="ssmItems.js" language="JavaScript1.2" type="text/javascript"></script>
funziona ugualmente, ma...cosa cambia?? Comunque ti posto il codice dei due script se vuoi esaminarli:
ssm.js
//Static Slide Menu 6.5 © MaXimuS 2000-2001, All Rights Reserved.
//Site: http://www.absolutegb.com/maximus
//E-mail: maximus@nsimail.com
//Script featured on Dynamic Drive (http://www.dynamicdrive.com)
NS6 = (document.getElementById&&!document.all)
IE = (document.all)
NS = (navigator.appName=="Netscape" && navigator.appVersion.charAt(0)=="4")
tempBar='';barBuilt=0;ssmItems=new Array();
moving=setTimeout('null',1)
function moveOut() {
if ((NS6||NS)&&parseInt(ssm.left)<0 || IE && ssm.pixelLeft<0) {
clearTimeout(moving);moving = setTimeout('moveOut()', slideSpeed);slideMenu(10)}
else {clearTimeout(moving);moving=setTimeout('null',1)} };
function moveBack() {clearTimeout(moving);moving = setTimeout('moveBack1()', waitTime)}
function moveBack1() {
if ((NS6||NS) && parseInt(ssm.left)>(-menuWidth) || IE && ssm.pixelLeft>(-menuWidth)) {
clearTimeout(moving);moving = setTimeout('moveBack1()', slideSpeed);slideMenu(-10)}
else {clearTimeout(moving);moving=setTimeout('null',1)} }
function slideMenu(num){
if (IE) {ssm.pixelLeft += num;}
if (NS||NS6) {ssm.left = parseInt(ssm.left)+num;}
if (NS) {bssm.clip.right+=num;bssm2.clip.right+=num;}}
function makeStatic() {
if (NS||NS6) {winY = window.pageYOffset;}
if (IE) {winY = document.body.scrollTop;}
if (NS6||IE||NS) {
if (winY!=lastY&&winY>YOffset-staticYOffset) {
smooth = .2 * (winY - lastY - YOffset + staticYOffset);}
else if (YOffset-staticYOffset+lastY>YOffset-staticYOffset) {
smooth = .2 * (winY - lastY - (YOffset-(YOffset-winY)));}
else {smooth=0}
if(smooth > 0) smooth = Math.ceil(smooth);
else smooth = Math.floor(smooth);
if (IE) bssm.pixelTop+=smooth;
if (NS6||NS) bssm.top=parseInt(bssm.top)+smooth
lastY = lastY+smooth;
setTimeout('makeStatic()', 1)}}
function buildBar() {
if(barText.indexOf('<IMG')>-1) {tempBar=barText}
else{for (b=0;b<barText.length;b++) {tempBar+=barText.charAt(b)+"
"}}
document.write('<td align="center" rowspan="100" width="'+barWidth+'" bgcolor="'+barBGColor+'" valign="'+barVAlign+'"><p align="center"><font face="'+barFontFamily+'" Size="'+barFontSize+'" COLOR="'+barFontColor+'">'+tempBar+'</font></p></TD>')}
function initSlide() {
if (NS6){ssm=document.getElementById("thessm").style; bssm=document.getElementById("basessm").style;
bssm.clip="rect(0 "+document.getElementById("thessm").offsetWidt h+" "+document.getElementById("thessm").offsetHeig ht+" 0)";ssm.visibility="visible";}
else if (IE) {ssm=document.all("thessm").style;bssm=document.al l("basessm").style
bssm.clip="rect(0 "+thessm.offsetWidth+" "+thessm.offsetHeight+" 0)";bssm.visibility = "visible";}
else if (NS) {bssm=document.layers["basessm1"];
bssm2=bssm.document.layers["basessm2"];ssm=bssm2.document.layers["thessm"];
bssm2.clip.left=0;ssm.visibility = "show";}
if (menuIsStatic=="yes") makeStatic();}
function buildMenu() {
if (IE||NS6) {document.write('<DIV ID="basessm" style="visibility:hidden;Position : Absolute ;Left : '+XOffset+' ;Top : '+YOffset+' ;Z-Index : 20;width:'+(menuWidth+barWidth+10)+'"><DIV ID="thessm" style="Position : Absolute ;Left : '+(-menuWidth)+' ;Top : 0 ;Z-Index : 20;" onmouseover="moveOut()" onmouseout="moveBack()">')}
if (NS) {document.write('<LAYER name="basessm1" top="'+YOffset+'" LEFT='+XOffset+' visibility="show"><ILAYER name="basessm2"><LAYER visibility="hide" name="thessm" bgcolor="'+menuBGColor+'" left="'+(-menuWidth)+'" onmouseover="moveOut()" onmouseout="moveBack()">')}
if (NS6){document.write('<table border="0" cellpadding="0" cellspacing="0" width="'+(menuWidth+barWidth+2)+'" bgcolor="'+menuBGColor+'"><TR><TD>')}
document.write('<table border="0" cellpadding="0" cellspacing="1" width="'+(menuWidth+barWidth+2)+'" bgcolor="'+menuBGColor+'">');
for(i=0;i<ssmItems.length;i++) {
if(!ssmItems[i][3]){ssmItems[i][3]=menuCols;ssmItems[i][5]=menuWidth-1}
else if(ssmItems[i][3]!=menuCols)ssmItems[i][5]=Math.round(menuWidth*(ssmItems[i][3]/menuCols)-1);
if(ssmItems[i-1]&&ssmItems[i-1][4]!="no"){document.write('<TR>')}
if(!ssmItems[i][1]){
document.write('<td bgcolor="'+hdrBGColor+'" HEIGHT="'+hdrHeight+'" ALIGN="'+hdrAlign+'" VALIGN="'+hdrVAlign+'" WIDTH="'+ssmItems[i][5]+'" COLSPAN="'+ssmItems[i][3]+'"><font face="'+hdrFontFamily+'" Size="'+hdrFontSize+'" COLOR="'+hdrFontColor+'">'+ssmItems[i][0]+'</font></td>')}
else {if(!ssmItems[i][2])ssmItems[i][2]=linkTarget;
document.write('<TD BGCOLOR="'+linkBGColor+'" onmouseover="bgColor=\''+linkOverBGColor+'\'" onmouseout="bgColor=\''+linkBGColor+'\'" WIDTH="'+ssmItems[i][5]+'" COLSPAN="'+ssmItems[i][3]+'"><ILAYER><LAYER onmouseover="bgColor=\''+linkOverBGColor+'\'" onmouseout="bgColor=\''+linkBGColor+'\'" WIDTH="100%" ALIGN="'+linkAlign+'"><DIV ALIGN="'+linkAlign+'"><FONT face="'+linkFontFamily+'" Size="'+linkFontSize+'"><A HREF="'+ssmItems[i][1]+'" target="'+ssmItems[i][2]+'" CLASS="ssmItems">'+ssmItems[i][0]+'</DIV></LAYER></ILAYER></TD>')}
if(ssmItems[i][4]!="no"&&barBuilt==0){buildBar();barBuilt=1}
if(ssmItems[i][4]!="no"){document.write('</TR>')}}
document.write('</table>')
if (NS6){document.write('</TD></TR></TABLE>')}
if (IE||NS6) {document.write('</DIV></DIV>')}
if (NS) {document.write('</LAYER></ILAYER></LAYER>')}
theleft=-menuWidth;lastY=0;setTimeout('initSlide();', 1)}
ssmItems.js
<!--
/*
Configure menu styles below
NOTE: To edit the link colors, go to the STYLE tags and edit the ssm2Items colors
*/
YOffset=150; // no quotes!!
XOffset=0;
staticYOffset=30; // no quotes!!
slideSpeed=20 // no quotes!!
waitTime=100; // no quotes!! this sets the time the menu stays out for after the mouse goes off it.
menuBGColor="black";
menuIsStatic="yes"; //this sets whether menu should stay static on the screen
menuWidth=150; // Must be a multiple of 10! no quotes!!
menuCols=2;
hdrFontFamily="verdana";
hdrFontSize="2";
hdrFontColor="white";
hdrBGColor="#170088";
hdrAlign="left";
hdrVAlign="center";
hdrHeight="15";
linkFontFamily="Verdana";
linkFontSize="2";
linkBGColor="white";
linkOverBGColor="#FFFF99";
linkTarget="_top";
linkAlign="Left";
barBGColor="#444444";
barFontFamily="Verdana";
barFontSize="2";
barFontColor="white";
barVAlign="center";
barWidth=20; // no quotes!!
barText="SIDE MENU"; // <IMG> tag supported. Put exact html for an image to show.
///////////////////////////
// ssmItems[...]=[name, link, target, colspan, endrow?] - leave 'link' and 'target' blank to make a header
ssmItems[0]=["Menu"] //create header
ssmItems[1]=["Dynamic Drive", "http://www.dynamicdrive.com", ""]
ssmItems[2]=["What's New", "http://www.dynamicdrive.com/new.htm",""]
ssmItems[3]=["What's Hot", "http://www.dynamicdrive.com/hot.htm", ""]
ssmItems[4]=["Message Forum", "http://freewarejava.com/cgi-bin/Ultimate.cgi", "_new"]
ssmItems[5]=["Submit Script", "http://www.dynamicdrive.com/submitscript.htm", ""]
ssmItems[6]=["Link to Us", "http://www.dynamicdrive.com/link.htm", ""]
ssmItems[7]=["FAQ", "http://www.dynamicdrive.com/faqs.htm", "", 1, "no"] //create two column row
ssmItems[8]=["Email", "http://www.dynamicdrive.com/contact.htm", "",1]
ssmItems[9]=["External Links", "", ""] //create header
ssmItems[10]=["Website Abstraction", "http://www.wsabstract.com", ""]
ssmItems[11]=["Freewarejava", "http://www.freewarejava.com", ""]
ssmItems[12]=["Dynamic Fx", "http://absolutegb.com/maximus/", ""]
buildMenu();
//-->
comqunque puoi anche vedere i sorgenti direttamente on-line
ssm.js
ssmItems.js
I due script sembrano fatti bene (li ho guardati un po' e non ho trovato grossi errori).
L'unico problema e` che usano attributi deprecati anche con i browser recenti, per cui sono validi per HTML4, ma non per XHTML.
La chiamata a JS:
l'attributo language e` deprecato e obsoleto per HTML4 e XHTML. E` tollerato con la DTD transitional (quella che usi) per compatibilita` all'indietro.
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
cmq il grosso dei problemi di compatibilità è nel fatto che con il doctype valido
- le misure nei css vogliono le unità di misura
- ogniqualvolta si leggono occorre fare un parseInt e quando si settano via script aggiungere 'px'
- document.body.scrollTop o clientHeight non sono utilizzabili (chiaramente neanche con IE),
vanno usati window.document.documentElement.scrollTop window.document.documentElement.clientHeight etc...
direi che tutto questo è parecchio ostrogoto.....x me....![]()
a parte il fatto che lo script funziona senza il doctype che specifica il tipo di documento...non è che ci abbia capito molto con gli standard css ecc..