Newsgroup: it.comp.lang.javascript
Titolo: Conflitto DHTML (menu e testo scorrevole)

Acc.. quanti problemi...
Ho provato dei menu dimamici (quando ci vai sopra con il mouse compare il
menu)
funziona perfettamente con IE e NS
ma quando cerco di inserire del testo scorrevole tipo questo ma non solo
i menu non compaiono più sicuramente qualche conflitto
Avete idea di cosa potrebbe essere?
Non posto il menu perchè troppo lungo e su diversi file...
magari avete qualche idea su cosa potrebbe essere!?
 (io con dhtml sono a "0")
P.S ma sono OT... c'è un NG dhtml?
Sempre grazie,
F.
 testo scorrevole:
<CENTER><script language="JavaScript1.2">
file://Specify the marquee's width (in pixels)
var marqueewidth=150
file://Specify the marquee's height
var marqueeheight=150
file://Specify the marquee's scroll speed (larger is faster)
var speed=2
file://Specify the marquee contents
var marqueecontents='<font face="Arial"><strong><big>HTML.it è il primo sito
in italiano dedicato a <a href="
http://www.html.it
">Dynamic HTML</a> .
Questa demo funziona correttamente sia con MSIE che con NS, non usate
accenti con apici singoli</big></strong></font>'
if (document.all)
document.write('<marquee direction="up" scrollAmount='+speed+'
style="width:'+marqueewidth+';height:'+marqueeheight+'">'+marqueecontents+'<
/marquee>')
function regenerate(){
window.location.reload()
}
function regenerate2(){
if (document.layers){
setTimeout("window.onresize=regenerate",450)
intializemarquee()
}
}
function intializemarquee(){
document.cmarquee01.document.cmarquee02.document.write(marqueecontents)
document.cmarquee01.document.cmarquee02.document.close()
thelength=document.cmarquee01.document.cmarquee02.document.height
scrollit()
}
function scrollit(){
if (document.cmarquee01.document.cmarquee02.top>=thelength*(-1)){
document.cmarquee01.document.cmarquee02.top-=speed
setTimeout("scrollit()",100)
}
else{
document.cmarquee01.document.cmarquee02.top=marqueeheight
scrollit()
}
}
window.onload=regenerate2
</script>
<ilayer width=&{marqueewidth}; height=&{marqueeheight}; name="cmarquee01">
<layer name="cmarquee02" width=&{marqueewidth};
height=&{marqueeheight};></layer>
</ilayer></CENTER>



 Avete idea di cosa potrebbe essere?
Non ho guardato gli script  ,ma un problema simile lo aveva "Floppy" (vedere
repost precedenti) , probabilmente avete preso lo stesso
script........cmq....vedi quel repost....lì bastava sostituire l'evento
onLoad con onMouseOver e aumentare il setTimeout a 3 secondi........
Se non è così dicci dove lo hai preso che al limite si verifica il
funzionamento!!
____________________
andreotta fabiano
WebMªster ATI POWER s.n.c.
andr...@atipower.it
http://www.atipower.it
http://www.afdsoftware.freeweb.org
____________________
javascript-javascript-javascript
http://www.jsdir.com
____________________
*¢ L'unica certezza nella vita è che tutto è relativo (per fortuna)¢*

Li ho presi da 
www.html.it
ho isolato il problema
entrambi alla fine hanno:
window.onload= makeTop; questo è del menu
window.onload= regenerate20;   e questo del testo  che viene dopo e blocca
il (menu)
i due "window.onload" sono incompatibili!
come si possono rendere compatibili ???
(in questo modo riuscirei a far fungere anche i menu espandibili che hanno
lo stesso problema)
GRAZIE!
F.
-------------------------
questo è sorgente del menu con onload alla fine::
if (perCentOver != null) {
 childOverlap = (perCentOver/100) * menuWidth
}
mSecsVis = secondsVisible*1000;
semi = ";";
styleStr = "<STYLE TYPE='text/css'>"
styleStr += ".items {"
styleStr += "width:" + menuWidth + semi
styleStr += "color:"+ fntCol + semi
styleStr += "font-size:"+ fntSiz + semi
styleStr += "font-weight:"+ fntWgh + semi
styleStr += "font-style:"+ fntSty + semi
styleStr += "font-family:"+ fntFam + semi
styleStr += "border-width:" + borWid + semi
styleStr += "border-color:" + borCol + semi
styleStr += "border-style:" + borSty + semi
styleStr += "line-height:" + linHgt + semi
styleStr += "}"
styleStr += "</STYLE>";
document.write(styleStr);
imgStr = "<IMG SRC=" + imgSrc + " WIDTH=" + imgSiz + " HEIGHT=" + imgSiz +"
BORDER=0 VSPACE=2 ALIGN=RIGHT>"
topCount = 1;
areCreated = false;
isOverMenu = false;
currentMenu = null;
allTimer = null;
function menuSetup(hasParent,lastItem,openCont,openItem) {
 this.menuOver = menuOver;
 this.menuOut = menuOut;
 this.onmouseover = this.menuOver;
 this.onmouseout = this.menuOut;
 this.showIt = showIt;
 this.keepInWindow = keepInWindow;
 this.hideTree = hideTree
 this.hideParents = hideParents;
 this.hideChildren = hideChildren;
 this.hideTop = hideTop;
 this.hasChildVisible = false;
 this.isOn = false;
 this.hideTimer = null;
 if (hasParent) {
  this.hasParent = true;
  this.parentMenu = openCont;
  this.parentItem = openItem;
  this.parentItem.child = this;
 }
 else {
  this.hasParent = false;
  this.hideSelf = hideSelf;
 }
 if (NS4) {
  this.fullHeight = lastItem.top + lastItem.document.height;
  this.clip.bottom = this.fullHeight;
 }
 else {
     this.fullHeight = lastItem.style.pixelTop + lastItem.offsetHeight;
  this.showIt(false);
  this.onselectstart = cancelSelect;
  this.moveTo = moveTo;
  this.moveTo(0,0);
 }
}
function itemSetup(arrayPointer,whichArray) {
 this.itemOver = itemOver;
 this.itemOut = itemOut;
 this.onmouseover = this.itemOver;
 this.onmouseout = this.itemOut;
 this.dispText = whichArray[arrayPointer];
 this.linkText = whichArray[arrayPointer + 1];//1
 this.hasMore = whichArray[arrayPointer + 2];//2
 if (this.linkText.length > 0) {
  this.linkIt = linkIt;
  if (NS4) {
   this.onfocus = this.linkIt;
  }
  else {
   this.onclick = this.linkIt;
   this.style.cursor = "hand";
  }
 }
 if (this.hasMore) {
  htmStr = imgStr + this.dispText;
 }
 else {
  htmStr = this.dispText;
 }
 if (NS4) {
  layStr = "<SPAN CLASS=items>" + htmStr+ "</SPAN>";
  this.document.write(layStr);
  this.document.close();
  this.bgColor = backCol;
  this.clip.right = menuWidth;
  this.visibility = "inherit";
  this.container = this.parentLayer;
  if (arrayPointer == 0) {this.top = 0;}
  else { this.top = this.prevItem.top + this.prevItem.document.height -
borWid; }
  this.left = 0;
 }
 else {
  this.className = "items";
  this.style.padding = 3;
  this.innerHTML = htmStr;
  this.style.backgroundColor = backCol;
  this.container = this.offsetParent;
  if (arrayPointer == 0) {this.style.pixelTop = 0; }
  else { this.style.pixelTop = this.prevItem.style.pixelTop +
this.prevItem.offsetHeight - borWid;
  }
  this.style.pixelLeft = 0;
 }
}
function makeElement(whichEl,whichContainer) {
 if (arguments.length==1)
  whichContainer = (NS4) ? window: document.body;
if (NS4) {
  if (arguments.length==1){
   eval(whichEl + "= new Layer(menuWidth )");
  }
  else {
  eval(whichEl + "= new Layer(menuWidth, whichContainer )");
  }
 }
 else {
  elStr = "<DIV ID=" + whichEl + " STYLE='position:absolute'></DIV>";
  whichContainer.insertAdjacentHTML("BeforeEnd",elStr);
 }
 return eval(whichEl);
}
function makeTop() {
 while(eval("window.arMenu" + topCount)) {
  topArray = eval("arMenu" + topCount);
  topName = "elMenu" + topCount;
  topMenu = makeElement(topName);
     topMenu.setup = menuSetup;
  topItemCount = 0;
  for (i=0; i<topArray.length; i+=3) {
   topItemCount++;
   status = "Creazione menu in corso, attendere per favore: " + topCount + "
/ " + topItemCount;
   topItemName = "item" + topCount + "_" + topItemCount;
   topItem = makeElement(topItemName,topMenu);
   if (topItemCount >1)
    topItem.prevItem = eval("item" + topCount + "_" + (topItemCount-1));
   topItem.setup = itemSetup;
   topItem.setup(i,topArray);
   if (topItem.hasMore) makeSecond();
  }
  topMenu.setup(false,topItem);
  topCount++
 }
 status = (topCount-1) + " Creazione del menu completata"
 areCreated = true;
}
function makeSecond() {
 secondCount = topCount + "_" + topItemCount;
 secondArray = eval("arMenu" + secondCount);
 secondName = "elChild" + secondCount;
 secondMenu = makeElement(secondName);
 secondMenu.setup = menuSetup;
 secondItemCount=0;
 for (j=0; j<secondArray.length; j+=3) {
  secondItemCount++;
  secondItemName = "item" + secondCount +"_" + secondItemCount;
  secondItem = makeElement(secondItemName,secondMenu)
  if (secondItemCount >1)
   secondItem.prevItem = eval("item" + secondCount  + "_" +
(secondItemCount-1));
  secondItem.setup = itemSetup;
  secondItem.setup(j,secondArray);
  if (secondItem.hasMore) makeThird();
 }
 secondMenu.setup(true,secondItem,topMenu,topItem);
}
function makeThird() {
 thirdCounter = secondCount + "_" + secondItemCount
 thirdArray = eval("arMenu" + thirdCounter);
 thirdName = "elGrandChild" + thirdCounter;
 thirdMenu = makeElement(thirdName)
 thirdMenu.setup = menuSetup;
 thirdItemCount=0;
 for (k=0; k<thirdArray.length; k+=3) {
  thirdItemCount++;
  thirdItemName = "item" + thirdCounter + "_" + thirdItemCount;
  thirdItem = makeElement(thirdItemName,thirdMenu);
  if (thirdItemCount >1)
   thirdItem.prevItem = eval("item" + thirdCounter + "_"
+(thirdItemCount-1));
  thirdItem.setup = itemSetup;
  thirdItem.setup(k,thirdArray);
 }
 thirdMenu.setup(true,thirdItem,secondMenu,secondItem);
}
function linkIt() {
 location.href = this.linkText;
}
function showIt(on) {
 if (NS4) {this.visibility = (on) ? "show" : "hide"}
  else {this.style.visibility = (on) ? "visible" : "hidden"}
}
function keepInWindow() {
 scrBars = 20;
 if (NS4) {
  winRight = (window.pageXOffset + window.innerWidth) - scrBars;
  rightPos = this.left + menuWidth;
  if (rightPos > winRight) {
   if (this.hasParent) {
    parentLeft = this.parentMenu.left;
    newLeft = ((parentLeft-menuWidth) + childOverlap);
    this.left = newLeft;
   }
   else {
    dif = rightPos - winRight;
    this.left -= dif;
   }
  }
  winBot = (window.pageYOffset + window.innerHeight) - scrBars;
  botPos = this.top + this.fullHeight;
  if (botPos > winBot) {
   dif = botPos - winBot;
   this.top -= dif;
  }
 }
 else {
     winRight = (document.body.scrollLeft + document.body.clientWidth) -
scrBars;
  rightPos = this.style.pixelLeft + menuWidth;
  if (rightPos > winRight) {
   if (this.hasParent) {
    parentLeft = this.parentMenu.style.pixelLeft;
    newLeft = ((parentLeft - menuWidth) + childOverlap);
    this.style.pixelLeft = newLeft;
   }
   else {
    dif = rightPos - winRight;
    this.style.pixelLeft -= dif;
   }
  }
  winBot = (document.body.scrollTop + document.body.clientHeight) - scrBars;
  botPos = this.style.pixelTop + this.fullHeight;
  if (botPos > winBot) {
   dif = botPos - winBot;
   this.style.pixelTop -= dif-10;
  }
 }
}
function popUp(menuName,e){
 if (!areCreated) return;
 hideAll();
 currentMenu = eval(menuName);
 xPos = (NS4) ? e.pageX : event.x;
 yPos = (NS4) ? e.pageY : event.y;
 file://aggiunte
 file://xPos-=15;
 if(yPos<24)yPos=24;
 currentMenu.moveTo(xPos,yPos);
 currentMenu.keepInWindow()
 currentMenu.isOn = true;
 currentMenu.showIt(true);
}
function
Down(menuName){ 
 if (!areCreated) return;
 whichEl = eval(menuName);
 whichEl.isOn = false;
 whichEl.hideTop();
}
function menuOver() {
 this.isOn = true;
 isOverMenu = true;
 currentMenu = this;
 if (this.hideTimer) clearTimeout(this.hideTimer);
}
function menuOut() {
 if (IE4 && event.srcElement.contains(event.toElement)) return;
 this.isOn = false;
 isOverMenu = false;
 if (IE4) allTimer = setTimeout("currentMenu.hideTree()",10); 
}
function itemOver(){
 if (IE4 && event.srcElement.tagName == "IMG") return;
 if (NS4) {
  this.bgColor = overCol;
 }
 else {
  this.style.backgroundColor = overCol;
  this.style.color = overFnt;
 }
 
 if (this.container.hasChildVisible) {
  this.container.hideChildren(this);
 }            
 if(this.hasMore) {
  if (NS4) {
   this.childX = this.container.left + (menuWidth - childOverlap);
   this.childY = this.pageY + childOffset;
  }
  else {
   this.childX = this.container.style.pixelLeft + (menuWidth - childOverlap);
   this.childY = this.style.pixelTop + this.container.style.pixelTop + childOffset;
  }
  this.child.moveTo(this.childX,this.childY);
  this.child.keepInWindow();
  this.container.hasChildVisible = true;
  this.container.visibleChild = this.child;
  this.child.showIt(true);
 }
}
function itemOut() {
    if (IE4 && (event.srcElement.contains(event.toElement)
     || (event.fromElement.tagName=="IMG" && event.toElement.contains(event.fromElement))))
        return;
 if (NS4) {
  this.bgColor = backCol;
  if (!isOverMenu) {
   allTimer = setTimeout("currentMenu.hideTree()",10);
  }
 }
 else {
  this.style.backgroundColor = backCol;
  this.style.color = fntCol;
 }
}
function hideAll() {
 for(i=1; i<topCount; i++) {
  temp = eval("elMenu" + i)
;
  temp.isOn = false;
  if (temp.hasChildVisible) temp.hideChildren();
  temp.showIt(false);
 }
}
function hideTree()
 allTimer = null;
 if (isOverMenu) return;
 if (this.hasChildVisible) {
  this.hideChildren();
 }
 this.hideParents();
}
function hideChildren(item) {
 if (this.visibleChild.hasChildVisible) {
  this.visibleChild.visibleChild.showIt(false);
  this.visibleChild.hasChildVisible = false;
 }
 if (!this.isOn || !item.hasMore || this.visibleChild != this.child) {
  this.visibleChild.showIt(false);
  this.hasChildVisible = false;
 }
}
function hideParents()
 if (this.hasParent) {
  this.showIt(false);
  if (this.parentMenu.hasParent) {
   this.parentMenu.isOn = false;
   this.parentMenu.showIt(false);
   this.parentMenu.parentMenu.isOn = false;
   whichEl = this.parentMenu.parentMenu
  }
  else {
   this.parentMenu.isOn = false;
   whichEl = this.parentMenu;
  }
 }
 else {
  whichEl = this;
 }
 whichEl.hideTop();
}
function hideTop() {
 whichEl = this;
 this.hideTimer = setTimeout("whichEl.hideSelf()",mSecsVis);
}
function hideSelf() {
 this.hideTimer = null;
 if (!this.isOn && !isOverMenu)
  this.showIt(false);
 }
}
function cancelSelect(){return false}
function moveTo(xPos,yPos) {
 this.style.pixelLeft = xPos;
 this.style.pixelTop = yPos;
}
window.onload = makeTop;

il problema sembra risolto cosě:
li ho messi in fila togliendoli da dove si trovavano:
window.onload=regenerate2 /*testo scorrevole */
window.onload=initIt;  /* menu dinamico */
window.onload= makeTop; / * menu espansione */
sembra che funzioni bene!...ma lo devo testare bene!
Grazie
F.

 F.
Non è la prima volta che si verificano problemi con script cut&paste di
html.it..........


 html.it..........
***Anche*** è nato JsDir. Per dare una voce autorevole a JavaScript & Company.
:-)))))
Ciao, Riccardo
-----------------------------------------------------------------------
WebMaster of: 
http://www.jsdir.com
Need a JavaScript password?
http://www.agora.it/Ri.Riccardi/ingresso.html
-----------------------------------------------------------------------
"Any sufficientely advanced technology is indistinguishable from magic"
Arthur Charles Clarke
-----------------------------------------------------------------------

 
Ho saltato due parole: ***Anche*** ->> per questo <<- è nato JsDir. 


 :-)))))
Volevo metterlo io......ma era meglio lo facessi tu!!
Ciao!


 il problema sembra risolto cosě:


Esatto!...
toglilo dal file .js (puoi anche lasciarlo volendo)
e mettili  tutti nella pg html in fila come nell'esempio.
Bye
F.

 ha scritto nel messaggio
news:8q3u9p$24o$1...@news.IT.net...


 Ovviamente la risposta me la dai attraverso il newsgroup.
E perché non pubblicarli in una cartella non raggiungibile dal sito così magari 
li guarda più gente? Hai visto mai che uno nota una cosa che sfugge ad un 
altro? :-))))
Mi scuso con Fulvio se m'intrometto, ma sarei curioso anch'io di vedere 'sta 
cosa.
Ciao, Riccardo
------------------------------------------------------------------------
WebMaster: ----> 
http://www.jsdir.com
 <---- (aka 
http://www.jspoint.it
)
------------------------------------------------------------------------
Need a JavaScript password?
http://www.jspoint.it/staffscripts/script021/PazzWordProva/ingresso.html
------------------------------------------------------------------------
"Any sufficientely advanced technology is indistinguishable from magic"
                      Arthur Charles Clarke
------------------------------------------------------------------------

 li guarda piů gente? Hai visto mai che uno nota una cosa che sfugge ad un


qui vedi i menu dinamici e il testo scorrevole
mi sono accorto ora che con quel "malette chiodo" di NS 4.6
non vanno .... è tutta la settimana  che ci perdo tempo (con il chiodo)
...si.. si    io sono un pivello... ma NS è un CHIODO!!!
Fortunatamente sono rimasti in pochi ad usarlo, spero che la prossima
versione sia migliore.
Vediamo se qualche esperto riesce a far fungere il "chiodo".
 (avevo provato anche ad aggiungere iquelli espandibili con IE andavano )
http://www.xtrader.net/front5.php3
http://www.xtrader.net/tmat2.php3
P.s Le pagine sono solo dei test.