Seite 2 von 5
Verfasst: 12.08.2005 21:28
von Treverer
auch ich habe das slide-menü in der version 1.00 installiert.
und auch bei mir funktioniert es im ie, aber nicht im firefox. gibt es jemanden, bei dem es funktioniert? wenn ja, woran liegt es? wenn nicht, woran liegt es?

Verfasst: 12.08.2005 21:29
von Treverer
KevinD hat geschrieben:ich denke es liegt vielleicht dadran das die img tags falsch programmiert sind
Code: Alles auswählen
Aus:
<img src=templates/fisubsilversh/images/arrow_o.gif >
Mache:
<img src="templates/fisubsilversh/images/arrow_o.gif">
usw. also nach dem = ein " und das leerzeichen am ende durch ein " ersetzen
kann sein das das schon alles war...
wo finden sich denn die angegeben zeilen?
Verfasst: 12.08.2005 21:52
von oliver12345
@ Treverer
Bei mir geht's jetzt schon länger wieder. Hier mal der Code meiner
menue.js:
Code: Alles auswählen
<!--
/*
Copyright © MaXimuS 1999-2001, All Rights Reserved.
Site: http://www.absolutegb.com/maximus
E-mail: maximus@nsimail.com
Script: Static Slide Menu
Version: 6.5.3.5 (Temporary)
*/
NS6 = (document.getElementById&&!document.all)
IE = (document.all)
NS = (navigator.appName=="Netscape" && navigator.appVersion.charAt(0)=="4")
tempBar='';
barBuilt=0;
lastY=0;
sI=new Array();
moving=setTimeout('null',1);
function moveOut() {if (parseInt(ssm.left)<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 (parseInt(ssm.left)>(-menuWidth)) {clearTimeout(moving);
moving = setTimeout('moveBack1()', slideSpeed);slideMenu(-10)}
else {clearTimeout(moving);moving=setTimeout('null',1)}}
function slideMenu(num){ssm.left = parseInt(ssm.left)+num;
if (NS) {bssm.clip.right+=num;bssm2.clip.right+=num;
if(bssm.left+bssm.clip.right>document.width)document.width+=num}}
function makeStatic() {
winY=(IE)?document.body.scrollTop:window.pageYOffset;
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);
bssm.top=parseInt(bssm.top)+smooth
lastY = lastY+smooth;
setTimeout('makeStatic()', 10)}
function buildBar() {
if(barText.toLowerCase().indexOf('<img')>-1) {tempBar=barText}
else{for (b=0;b<barText.length;b++) {tempBar+=barText.charAt(b)+"<BR>"}}
document.write('<td align="center" rowspan="100" width="'+barWidth+'" bgcolor="'+barBGColor+'" valign="'+barVAlign+'" align=center><span style="font-family: '+barFontFamily+'; font-size: '+barFontSize+'px; color: '+barFontColor+';"><B>'+tempBar+'</B></span></td>')}
function initSlide() {
if (NS6||IE){ssm=(NS6)?document.getElementById("thessm"):document.all("thessm");
bssm=(NS6)?document.getElementById("basessm").style:document.all("basessm").style;
bssm.clip="rect(0 "+ssm.offsetWidth+" "+(((IE)?document.body.clientHeight:0)+ssm.offsetHeight)+" 0)";
bssm.visibility="visible";ssm=ssm.style;if(NS6)bssm.top=YOffset}
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 : 0px ;Z-Index : 21;'+((IE)?"width:1px":"")+'" onmouseover="moveOut()" onmouseout="moveBack()">')}
if (NS) {document.write('<LAYER name="basessm1" top="'+YOffset+'" LEFT='+XOffset+' visibility="show" onload="initSlide()"><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="1" cellspacing="1" width="'+(menuWidth+barWidth+2)+'" bgcolor="'+menuBGColor+'">');
for(i=0;i<sI.length;i++) {
if(!sI[i][3]){sI[i][3]=menuCols;sI[i][5]=menuWidth-1}
else if(sI[i][3]!=menuCols)sI[i][5]=Math.round(menuWidth*(sI[i][3]/menuCols)-1);
if(sI[i-1]&&sI[i-1][4]!="no"){document.write('<TR>')}
if(!sI[i][1]){
document.write('<TD BGCOLOR="'+hdrBGColor+'" ALIGN="'+hdrAlign+'" VALIGN="'+hdrVAlign+'" WIDTH="'+sI[i][5]+'" COLSPAN="'+sI[i][3]+'"><span style="font-family: '+hdrFontFamily+'; font-size: '+hdrFontSize+'px; color: '+hdrFontColor+';"><b> '+sI[i][0]+'</b></span></TD>')}
else {if(!sI[i][2])sI[i][2]=linkTarget;
document.write('<TD BGCOLOR="'+linkBGColor+'" onmouseover="bgColor=\''+linkOverBGColor+'\'" onmouseout="bgColor=\''+linkBGColor+'\'" WIDTH="'+sI[i][5]+'" COLSPAN="'+sI[i][3]+'" style="cursor: default;"><ILAYER><LAYER onmouseover="bgColor=\''+linkOverBGColor+'\'" onmouseout="bgColor=\''+linkBGColor+'\'" WIDTH="100%" ALIGN="'+linkAlign+'"><DIV ALIGN="'+linkAlign+'"><span style="font-family: '+linkFontFamily+'; font-size: '+linkFontSize+'px; color: #516A88;"> • <A HREF="'+sI[i][1]+'" target="'+sI[i][2]+'" style="text-decoration: none;">'+sI[i][0]+'</DIV></LAYER></ILAYER></TD>')}
if(sI[i][4]!="no"&&barBuilt==0){buildBar();barBuilt=1}
if(sI[i][4]!="no"){document.write('</TR>')}}
document.write('</table>')
if (NS6){document.write('</TD></TR></TABLE>')}
if (IE||NS6) {document.write('</DIV></DIV>');setTimeout('initSlide();', 1)}
if (NS) {document.write('</LAYER></ILAYER></LAYER>')}}
function addHdr(name, cols, endrow){sI[sI.length]=[name, '', '', cols, endrow]}
function addItem(name, link, target, cols, endrow){if(!link)link="javascript://";sI[sI.length]=[name, link, target, cols, endrow]}
//-->
Verfasst: 12.08.2005 22:36
von Treverer
@oliver12345
ich habe die datei
menu.js mit deinem code ersetzt. aber danach gibt es bei mir gar kein menü mehr.
es ist klar für mich mittlerweile, daß sich firefox als NS6 "ausweist" in dem original-script...
ich werde jetzt mal schauen, was bei deinem script noch anders ist, als in meiner version. schon allein die gesamten ersten definitionen fehlen ja... welche slide-menü version hast du denn?
p.s.: danke dennoch für deine antwort!

Verfasst: 12.08.2005 22:44
von oliver12345
@ Treverer
In der
overall_header.tpl muss bei dir jetzt sowas stehen, damit es funktioniert:
Code: Alles auswählen
<!-- BEGIN switch_slide_menu -->
<script src="/phpBB2/templates/menue.js" language="javascript"></script>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
/*
Configure menu styles below
*/
YOffset=105; // no quotes!!
staticYOffset=104; // no quotes!!
XOffset=0; // no quotes!!
slideSpeed=1 // no quotes!!
waitTime=100; // no quotes!! this sets the time the menu stays out for after the mouse goes off it.
menuBGColor="#486386";
menuIsStatic="yes";
menuWidth=230; // Must be a multiple of 10! no quotes!!
menuCols=1;
hdrFontFamily="Arial, Helvetica, sans-serif";
hdrFontSize="11";
hdrFontColor="#32475F";
hdrBGColor="#D7E2EF";
hdrAlign="left";
hdrVAlign="center";
hdrHeight="12";
linkFontFamily="Arial, Helvetica, sans-serif";
linkFontSize="11";
linkBGColor="#E6ECF4";
linkOverBGColor="#F4F6FB";
linkTarget="_self";
linkAlign="left";
barBGColor="#D7E2EF";
barFontFamily="Arial, Helvetica, sans-serif";
barFontSize="11";
barFontColor="#32475F";
barVAlign="center";
barWidth=12; // no quotes!!
barText='FOREN - NAVIGATION'; // <IMG> tag supported, Ex: '<img src="some.gif" border=0>'
addHdr("Forum");
addItem("Index", "{U_INDEX}", "");
addItem("{L_FAQ}", "{U_FAQ}", "");
addItem("{L_SEARCH}", "{U_SEARCH}", "");
addItem("{L_MEMBERLIST}", "{U_MEMBERLIST}", "");
addItem("{L_USERGROUPS}", "{U_GROUP_CP}", "");
addItem("{L_WHO_IS_ONLINE}", "{U_VIEWONLINE}", "");
addHdr("Einstellungen");
addItem("{L_PROFILE}", "{U_VIEW_PROFILE}", "");
addItem("{PRIVATE_MESSAGE_INFO}", "{U_PRIVATEMSGS}", "");
addItem("{L_LOGIN_LOGOUT}", "{U_LOGIN_LOGOUT}", "");
buildMenu();
//-->
</SCRIPT>
<!-- END switch_slide_menu -->
Die Farben kannst du dann noch beliebig anpassen.

Verfasst: 12.08.2005 23:51
von Treverer
@oliver12345
so, nach vielem herum probieren stelle ich erst einmal fest, das deine codes immer noch kein menü herzaubern. schade
ich denke es ist die funktion
makestatic, die für den das "scrollen" des balken verantwortlich ist. wenn ich denn original code (version 1.00) verwendet, dann funktioniert wie gesagt alles, bis auf das scrollen des menüs. nehme ich deinen (komplett anders aufgebauten) makestatic-code, dann scrollt es in keinem der browser mehr.

bei deinem code sind in der funktion auch keine abfragen hinsichtlich des browsers mehr vorhanden.
also, ich werde mir jetzt mal noch genauer anschauen, wie die funktion überhaupt...äh..funktioniert
vielleicht finde ich dann ja auch eine lösung für firefox....
edit: ich denke, mit dem code in der overall_header.tlp hat es nichts zu tun, das problem. woher hast du eigentlich den code? welche version von slide-menü verwendest du?
Verfasst: 13.08.2005 00:13
von oliver12345
@ Treverer
Wenn du meinen Code von der
menue.js und der
overall_header.tpl verwendest, müsste das eigentlich klappen. Tut's bei mir ja auch - beim IE und Firefox.
Den Code habe ich mal zufällig in einem Forum gefunden, bei dem das Slidemenü funktioniert hat. Dann hab' ich mir den Code kopiert.

Welche Version das ist, weiß ich nicht.
Verfasst: 13.08.2005 01:09
von Treverer
oliver12345 hat geschrieben:@ Treverer
Wenn du meinen Code von der
menue.js und der
overall_header.tpl verwendest, müsste das eigentlich klappen. Tut's bei mir ja auch - beim IE und Firefox.
Den Code habe ich mal zufällig in einem Forum gefunden, bei dem das Slidemenü funktioniert hat. Dann hab' ich mir den Code kopiert.

Welche Version das ist, weiß ich nicht.
ne, macht es definitiv nicht. ich habe es nun mehrfach probiert, weil ich dachte, ich hätte mich irgendwie vertan in den dateien oder ähnlichem...
aber im nächsten posting kommt eine "notlösung"

Verfasst: 13.08.2005 01:14
von oliver12345
@ Treverer
Aber irgendwas musst du ja falsch gemacht haben. Ich habe keine Probleme mit meinem Script. Habe es vorhin extra nochmal getestet.
Naja, bin mal auf deine Lösung gespannt.

Verfasst: 13.08.2005 01:16
von Treverer
also,
makestatic scheint ja doch zu funktionieren, vielmehr beginnt der fehler bereits in
initSlide zu liegen. ich habe den code nur leicht geändert, an den postionen, wo man *** findet:
Code: Alles auswählen
function initSlide() {
if (NS6){
ssm=document.getElementById("ssm").style;
ssm.top=150+'px'; ***
ssm.visibility="visible";
ssm.left = -menuWidth+'px'; *** }
else if (IE) {
bei der zweitletzten zeile habe ich das " +'px' " eingefügt, welches zuvor fehlte. deswegen war das menü immer zu beginn geöffnet.
die zeile " ssm.top=150+'px'; " wurde von mir hinzugefügt, danach scrollt das menü. die wert 150 wurde gewählt weil es am besten ausschaut bzw. dem ie bild ähnelt. vielleicht wird der wert von smm.top nicht definiert bei firefox, wenn makestatic darauf zum ersten male zugreift? keine ahnung. ob es tatsächlich im NS6 vorher schon lief, weiß ich auch nicht. so oder so, diese eine änderung in initSlide reicht aus...