11. januar 2004 - 15:06
Der er
18 kommentarer og 1 løsning
CSS/Javascript problem
Jeg har her i nat siddet og lavet en ny menu til min hjemmeside. Jeg har brugt CSS og JavaScript til denne. Problemet er, at efter jeg har lavet dette script, så kan jeg ikke markere noget som helst på nogen af de sider hvor menuen er på. Jeg har ikke så meget forstand på JavaScript eller CSS, så jeg har ingen ide om hvor fejlen ligger. Men i kan jo se om i ka' CSS'en: span.tekst { color:#FFFFFF; text-decoration:none;font-size: 12px;font-family:Times new Rowman} span.tekst:hover { color:#000000; text-decoration:none;font-size: 12px;font-family:Times new Rowman} span.tekst:active { color:#FFFFFF; text-decoration:none;font-size: 12px;font-family:Times new Rowman} a.tekstu { color:#FFFFFF; text-decoration:none;font-size:13px;font-family:Times new Rowman} a.tekstu:hover { color:#000000; text-decoration:none;font-size:13px;font-family:Times new Rowman} a.tekstu:active { color:#000000; text-decoration:none;font-size:13px;font-family:Times new Rowman} .Menu {width: 100%; height: 28px; padding:1 0 2 5; border-right: #1B65AF 1xp solid; border-top: #1B65AF 1px solid; border-left: #1B65AF 1px solid; border-bottom: #1B65AF 1xp solid; background-color: #053165; cursor:hand; color:#1B65AF;} .Option {width: 100%; height: 24px; padding:2 5 3 12; border: 1 1 1 1 solid #ffffff; background-color: #0951AA; cursor:hand;} .Options {padding:1 1 1 1} .myimgsm {width:16;height:16;vertical-align: middle;} .myimgbi {width:20;height:20;vertical-align: middle;} JavaScriptet: document.onselectstart = function() { return false; } // Menu Lateral if (document.getElementById){ document.write('<style type="text/css">\n') document.write('.options{display: none;}\n') document.write('</style>\n') } function SwitchMenu(obj){ if(document.getElementById){ var el = document.getElementById(obj); var ar = document.getElementById("masterdiv").getElementsByTagName("span"); if(el.style.display != "block"){ for (var i=0; i<ar.length; i++){ if (ar[i].className=="options") ar[i].style.display = "none"; } el.style.display = "block"; }else{ el.style.display = "none"; } } } /Hans
Annonceindlæg fra Thales
11. januar 2004 - 15:10
#1
Har du et link i stedet - Det er nemmere at overskue :))
11. januar 2004 - 15:11
#2
Jeg laver lige et lille eksempel 2 sek.
11. januar 2004 - 15:45
#3
11. januar 2004 - 16:07
#4
"Hej - dette kan ikke markeres".. Jo det ka' :) Hvad er det lige der ikke vil som du vil? Hvad er fejlen?
11. januar 2004 - 16:09
#5
Jeg har tidliger lavet en lidt anden version som nok er lidt mere optimal (ret selv css´en): <html> <head> <style> .spacer{ width:20} .myBody,table,div{ font-family : Verdana, Arial; font-size : 9px ; color : #aaaaaa; background-color: #006699; margin-top:0; margin-left:0; border:0; } a:link{color: #ffffff;text-decoration: none;} a:visited{color: #ffffff;text-decoration: none;} a:active{color: #FFCCFF;text-decoration: underline;} a:hover{color: #FFCC00;text-decoration: underline;} </style> <script language="javascript"> <!-- ns4 = (document.layers)? true:false ie4 = (document.all)? true:false ie5 =(document.getElementById)? true:false ns6 = (document.getElementById && !document.all)?true:false; forrige = false; function vis(id){ if(forrige&&forrige!=id){ var styleObj = (ns4)? document.layers[forrige] : (ie4)? document.all[forrige].style : document.getElementById(forrige).style; styleObj.display = "none" } var styleObj = (ns4)? document.layers[id] : (ie4)? document.all[id].style : document.getElementById(id).style; if(styleObj.display == "none"){ styleObj.display = "" visible= 1 }else{ styleObj.display = "none" visible = 0 } forrige = id; } </script> </head> <body class="myBody"> <div id="menu1" onclick="vis('undermenu1')" style="cursor:hand;display:inline">Vis Menu 1</div> <br> <div id="undermenu1" style="display:none"> <table border="0"> <tr> <td class="spacer"> </td> <td><a href="#" target="_blank">1.1</a></td> </tr> <tr> <td class="spacer"> </td> <td><a href="#" target="_blank">1.2</a></td> </tr> </table> </div> <div id="menu2" onclick="vis('undermenu2')" style="cursor:hand;display:inline">Vis Menu 2</div> <br> <div id="undermenu2" style="display:none"> <table border="0"> <tr> <td class="spacer"> </td> <td><a href="#" target="_blank">2.1</a></td> </tr> <tr> <td class="spacer"> </td> <td><a href="#" target="_blank">2.2</a></td> </tr> </table> </div> <div href="#" id="menu3" onclick="vis('undermenu3')" style="cursor:hand;display:inline">Vis Menu 3</div> <div id="undermenu3" style="display:none"> <table border="0"> <tr> <td class="spacer"> </td> <td><a href="#" target="_blank">3.1</a></td> </tr> </table> </div> </body> </html>
11. januar 2004 - 16:12
#6
Har også en version med cookies liggende så den husker hvilket menupunkt man valgte når siden skifter.
11. januar 2004 - 16:13
#7
Send den som et svar - og du får points (hvis du vil)
11. januar 2004 - 16:15
#8
Hvis du kan bruge den...
11. januar 2004 - 16:18
#9
Jammen det kan jeg godt...
11. januar 2004 - 16:18
#10
Der er 2 store forskelle på din og min (ho ho) ;-) 1. Jeg skifter ikke classname (som er noget tung at lege med) 2. Jeg husker hvilken der er valgt således at jeg ikke skal løbe 400 igennem for at lukke dem alle.
11. januar 2004 - 16:20
#11
Nu har jeg lagt en <table> ind i hver menupunkt det behøves selvfølgelig ikke.
11. januar 2004 - 16:22
#12
Kan du ikke sende den menu/skrive den her i indlægget?
11. januar 2004 - 16:22
#13
- Jeg forstår ikke helt hvad du mener..
11. januar 2004 - 16:25
#14
hver evigt eneste menublok ser sådan her ud : <div href="#" id="menu3" onclick="vis('undermenu3')" style="cursor:hand;display:inline">Vis Menu 3</div> <div id="undermenu3" style="display:none"> <table border="0"> <tr> <td class="spacer"> </td> <td><a href="#" target="_blank">3.1</a></td> </tr> </table> </div> menu3 skal rettes til det nr du nu vil give dem (menu1, menu2, menu3 o.s.v.) og de 2 steder der står "undermenu3" skal passe sammen. altså være ens.
11. januar 2004 - 16:25
#15
Hvis det er cookie versionen du vil have så her : <html> <head> <style> .spacer{ width:20} .myBody,table{ font-family : Verdana, Arial; font-size : 9px ; color : #aaaaaa; background-color: #006699; margin-top:0; margin-left:0; border:0; } a:link{color: #ffffff;text-decoration: none;} a:visited{color: #ffffff;text-decoration: none;} a:active{color: #FFCCFF;text-decoration: underline;} a:hover{color: #FFCC00;text-decoration: underline;} </style> <script language="javascript"> <!-- ns4 = (document.layers)? true:false ie4 = (document.all)? true:false ie5 =(document.getElementById)? true:false ns6 = (document.getElementById && !document.all)?true:false; var forrige = false; function vis(id){ if(forrige&&forrige!=id){ var styleObj = (ns4)? document.layers[forrige] : (ie4)? document.all[forrige].style : document.getElementById(forrige).style; styleObj.display = "none" saet(forrige,0) } var styleObj = (ns4)? document.layers[id] : (ie4)? document.all[id].style : document.getElementById(id).style; if(styleObj.display == "none"){ styleObj.display = "" visible= 1 }else{ styleObj.display = "none" visible = 0 } saet(id,visible) forrige = id; } function saet (name, value) { var argv = saet.arguments; var argc = saet.arguments.length; var expires = (argc > 2) ? argv[2] : null; var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false; document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); } function hentKage2 (name) { var cook = document.cookie; var cookNavn = name + "="; var laengde = cook.length; var start = 0; while (start < laengde) { var slut = start + cookNavn.length; if (cook.substring(start, slut) == cookNavn) { var vend = cook.indexOf (";", slut); if (vend == -1) vend = laengde; return unescape(cook.substring(slut, vend)); } start = cook.indexOf(" ", start) + 1; if (start== 0) break; } return null; } function init(){ antalLag = 3; if(document.cookie){ for (a=1;a<=antalLag;a++){ tjeck = hentKage2('undermenu'+a) if(tjeck==1){ vis('undermenu'+a) } } } } --> </script> </head> <body onload="init()" class="myBody"> <div id="menu1" onclick="vis('undermenu1')" style="cursor:hand;display:inline">Vis Menu 1</div> <br> <div id="undermenu1" style="display:none"> <table border="0"> <tr> <td class="spacer"> </td> <td><a href="#" target="_blank">1.1</a></td> </tr> <tr> <td class="spacer"> </td> <td><a href="#" target="_blank">1.2</a></td> </tr> </table> </div> <div id="menu2" onclick="vis('undermenu2')" style="cursor:hand;display:inline">Vis Menu 2</div> <br> <div id="undermenu2" style="display:none"> <table border="0"> <tr> <td class="spacer"> </td> <td><a href="#" target="_blank">2.1</a></td> </tr> <tr> <td class="spacer"> </td> <td><a href="#" target="_blank">2.2</a></td> </tr> </table> </div> <div href="#" id="menu3" onclick="vis('undermenu3')" style="cursor:hand;display:inline">Vis Menu 3</div> <div id="undermenu3" style="display:none"> <table border="0"> <tr> <td class="spacer"> </td> <td><a href="#" target="_blank">3.1</a></td> </tr> </table> </div> </body> </html>
11. januar 2004 - 16:26
#16
takker mange gange
11. januar 2004 - 16:31
#17
No problemos :))
12. januar 2004 - 20:44
#18
Jeg har lige to kommentarer: 1)Jeg har nu fundet fejlen hvorfor jeg ikke kunne markere noget som helst på min side, når jeg havde min nye menu inde. Nemlig: document.onselectstart = function() { return false; } skal ændres til: document.onselectstart = function() { return tru; } så virker det hele perfekt :-D 2) Lige lidt til thesurfer Ja du kan godt markere teksten hvis du bruger Mozilla... Men nu er det sådan at jeg lavet primært mine sider så de også virker perfekt i IE
12. januar 2004 - 20:45
#19
Selvfølgelig: document.onselectstart = function() { return true; } sorry
Kurser inden for grundlæggende programmering