Dotmenu von 2001 mit DOCTYPE

TJF

Grünschnabel
Hallo,

ich habe ein vor langer Zeit bei dem früheren DHTML Central heruntergeladenes Punktemenü wieder ausgegraben, das schon seinerzeit nicht auf Opera lief und dem Heute auch noch jegliche DOCTYPE-Bezeichnung fehlte. Mit jeglichem Doctype bleibt das Menü unsichtbar.

Mein Ziel ist es nun das interessante Menü zu aktualisieren (u.U. bezogen auf einen div-container anstatt auf den ganzen Bildschirm). Ich konnte das Menü nun zuerst mit Opera gangbar machen und habe den Doctype Strict als Messlatte eingesetzt. Zuerst habe ich die CSS in Sachen width und height (fehlende "px" Angaben) korrigiert und im JS-Teil die fehlenden CSS-Angaben für "px" eingesetzt. Jetzt startet das Punktmenü mit dem sichtbaren Punkt. Der Rest landet oben links in der Ecke...

Ich wäre dankbar, wenn sich jemand das mal aus Ehrgeiz anschauen könnte. Es ist wohl irgendein weiterer Fehler i.S. CSS-Angaben im JS, den ich nach langem Suchen nicht finde. Die beiden Dateien (das Original und der von mir modif. Teil) liegen als Zip-Datei an.

Änderungen:
Zeile 9-11 ergänzte "px" für width und height
Zeile 101 wurde auskommentiert
Zeile 102 (103) wurde um "px" ergänzt (y und x)

Der Startmenü-Punkt (div id="divDot0") ist wie gesagt jetzt sichtbar und hat auch die richtigen Original-Koordinaten für "top" und "left".
Die nächste div id="divCap0" wird allerdings schon nicht mehr generiert, d.h. "top" und "left" bleiben "0px". Alle folgenden dito...

Dank und Gruß
Thomas
 

Anhänge

Diese o.g. "px" Ergänzung isses wohl nicht. Wenn ich die ersten Funktionen mal durchgehe:

Code:
function getObjectRef(name) {
  if(document.getElementById) return document.getElementById(name);
  else if(document.all) return document.all[name];
  else return null;
}

// general functions to assist the script
//========================================
function show(name) {
  var el = getObjectRef(name);
  if(el) el.style.visibility = "visible";
}
function hide(name) {
  var el = getObjectRef(name);
  if(el) el.style.visibility = "hidden";
}
function getWidth(name) {
  var el = getObjectRef(name);
  return el.offsetWidth;
}
function getHeight(name) {
  var el = getObjectRef(name);
  return el.offsetHeight;
}
function moveMe(name,x,y) {
  var el = getObjectRef(name);
  if(el) { el.style.top = parseInt(y); el.style.left = parseInt(x); }

}
function moveBy(name,x,y) {
  var el = getObjectRef(name);
  if(el) { el.style.top = parseInt(el.style.top) + parseInt(y); el.style.left = parseInt(el.style.left) + parseInt(x); }  
}

dann geht das ab der vorletzten Funktion nicht mehr auf: Für parseInt(x) und parseInt(y) wird NaN zurückgegeben. Deshalb bleiben in der Folge auch die top und left - Werte bei 0.

Ich habe im Head auch mal versucht den div zu konkretisieren:

Code:
<style type="text/css">
div { position:relative; left:500px; top:300px; width:1000px; height:800px; padding:0px; background-color:#FFFFE0; }
</style>

"x" und "y", die Abstände zur linken oberen Ecke bleiben wohl das zentrale Problem. Hat vielleicht jemand noch eine Idee?

Dank und Gruß
Thomas
 

Neue Beiträge

Zurück