Sebastian: Slidefunktion funktioniert nicht im FF

Hallo,

ich soll eine Slidefunktion reparieren die in Javascript programmiert ist und zwar im IE aber nicht im FF funktioniert. Leider habe ich von Javascript nicht wirklich viel Ahnung weshalb ich hier mal nach Hilfe zum Code frage.

Hier die Scrollklasse:

// MiniScroll Object  
// gives controls to a set of 2 layers for scrolling  
// 19990410  
  
// Copyright (C) 1999 Dan Steinman  
// Distributed under the terms of the GNU Library General Public License  
// Available at http://www.dansteinman.com/dynduo/  
  
function MiniScroll(window,content) {  
	this.window = window  
	this.content = content  
	this.content.slideInit()  
	this.inc = 8  
	this.speed = 50  
	this.contentHeight = (is.ns)? this.content.doc.height : this.content.elm.scrollHeight  
	this.contentWidth = (is.ns)? this.content.doc.width : this.content.elm.scrollWidth  
	this.up = MiniScrollUp  
	this.down = MiniScrollDown  
	this.left = MiniScrollLeft  
	this.right = MiniScrollRight  
	this.stop = MiniScrollStop  
	this.activate = MiniScrollActivate  
	this.activate(this.contentWidth,this.contentHeight)  
}  
function MiniScrollActivate(w,h) {  
	this.offsetHeight = h-this.window.h  
	this.offsetWidth = w-this.window.w  
	this.enableVScroll = (this.offsetHeight>0)  
	this.enableHScroll = (this.offsetWidth>0)  
}  
function MiniScrollUp() {  
	if (this.enableVScroll) this.content.slideTo(null,0,this.inc,this.speed)  
}  
function MiniScrollDown() {  
	if (this.enableVScroll) this.content.slideTo(null,-this.offsetHeight,this.inc,this.speed)  
}  
function MiniScrollLeft() {  
	if (this.enableHScroll) this.content.slideTo(0,null,this.inc,this.speed)  
}  
function MiniScrollRight() {  
	if (this.enableHScroll) this.content.slideTo(-this.offsetWidth,null,this.inc,this.speed)  
}  
function MiniScrollStop() {  
	this.content.slideActive = false  
}  

Und der Teil mit den Scrollbuttons:

<div id="ScrollUp" style="position:absolute; left:455px; top:420px; width:15px; height:15px; z-index:6">  
  <a href="javascript:;" onMouseDown="myscroll.up(); return false;" onMouseUp="myscroll.stop()" onMouseOut="myscroll.stop()" onFocus="if(this.blur)this.blur()" onMouseOver="window.status=''; return true;">  
    <img src="gifs/pfeile_ob.gif" width="15" height="15" border="0">  
  </a>  
</div>  
  
<div id="ScrollDown" style="position:absolute; left:475px; top:420px; width:15px; height:15px; z-index:7">  
  <a href="#" onMouseDown="myscroll.down(); return false;" onMouseUp="myscroll.stop()" onMouseOut="myscroll.stop()" onFocus="if(this.blur)this.blur()" onMouseOver="window.status=''; return true;">  
    <img src="gifs/pfeile_un.gif" width="15" height="15" border="0">  
  </a>  
</div>

Die Klasse wird über Body onload="Init();..." initialisiert mit der Funktion:

function init() {  
    DynLayerInit()  
    myscroll = new MiniScroll(scrollWindow,scrollContent)  
}

Wo könnte denn der Fehler liegen dass das nicht funktioniert? Wie gesagt im IE geht es aber nicht im FF...

Grüße!
Sebastian

  1. Hi, Sebastian!

    1. ist das kein JavaScript-Code. In JavaScript werden Zeilen mit ";" terminiert.
    2. hast Du nicht den kompletten Code geschrieben. Bitte gebe uns eine URL, damit wir uns das anschauen können.
    3. hast Du ganz offensichtlich die Tipps für Fragende nicht gelesen.

    Bevor Du sinnentleerte Fehlerbeschreibung wie "funktioniert nicht..." von Dir gibst, prüfe die Fehlerkonsole des jeweiligen Browsers auf Fehler. Validiere Deinen Code (bzw. verwende JSLint). Und lese die Tipps für Fragende, bevor Du das nächste Mal verwundert darüber verzweifelst, dass Du keine oder lediglich unergiebige Antworten bekommst.

    Gruß, LX

    --
    RFC 1925, Satz 6a: Es ist immer möglich, einen weiteren Umweg einzufügen.
    RFC 1925, Satz 11a: Siehe Regel 6a
    1. Hi,

      1. ist das kein JavaScript-Code. In JavaScript werden Zeilen mit ";" terminiert.

      Wenn sich in einer Zeile nur ein Statement befindet, ist das optional.

      Das Problem dürfte hier vermutlich mal wieder das "übliche" sein - dass CSS-Eigenschaften ungültige Längenangaben zugewiesen werden, weil die Angabe einer Einheit bei von 0 abweichenden Werten fehlt.

      MfG ChrisB

      --
      Light travels faster than sound - that's why most people appear bright until you hear them speak.
      1. Fällt dir vielleicht eine Lösung dazu ein? Die Seite darf ich nicht nennen. Wegen Kundenklau usw...

        Grüße!
        Sebastian

        1. Fällt dir vielleicht eine Lösung dazu ein? Die Seite darf ich nicht nennen. Wegen Kundenklau usw...

          Wenn Du Angst hast, dass Deine Kunden die Seite klauen, solltest Du sie vielleicht nicht ins Internet stellen ;-)

          Gruß, LX

          --
          RFC 1925, Satz 6a: Es ist immer möglich, einen weiteren Umweg einzufügen.
          RFC 1925, Satz 11a: Siehe Regel 6a
          1. Sind ja nicht meine Kunden. Aber es gibt wohl Programmierer die, sobald sie irgendwelche Kunden kennen, die antelefonieren und versuchen sie abzuwerben... Mein Chef hat da wohl mal schlechte Erfahrungen mit einem ehemaligen Mitarbeiter gemacht und daher gibts sowas nicht mehr... :)

            Grüße!
            Sebastian

            1. In solchen Fällen hilft es, schnell eine minimalisierte Seite ohne finale Inhalte zu bauen, die das Problem illustriert.

              Gruß, LX

              --
              RFC 1925, Satz 6a: Es ist immer möglich, einen weiteren Umweg einzufügen.
              RFC 1925, Satz 11a: Siehe Regel 6a
        2. Hi,

          Fällt dir vielleicht eine Lösung dazu ein?

          Mir fallen zunächst die üblichen Schritte zur Analyse des Problems ein. (Dazu hast du ja auch von LX schon Hinweise bekommen.)

          Die Seite darf ich nicht nennen. Wegen Kundenklau usw...

          Bitte, dann löst euer Problem halt "in-house" - da hat hier auch niemand was dagegen.

          Wenn sich Kunden allerdings so leicht "klauen" lassen - dann sollte man vielleicht analysieren, woran das liegt. Da könnte die Qualität der abgelieferten Arbeit ein wesentlicher Faktor sein.

          MfG ChrisB

          --
          Light travels faster than sound - that's why most people appear bright until you hear them speak.
      2. Hi ChrisB.

        In JavaScript werden Zeilen mit ";" terminiert.

        Wenn sich in einer Zeile nur ein Statement befindet, ist das optional.

        Stimmt. Und wenn sich in der Zeile mehrere Statements befinden, ist es auch optional.

        ;-)

        <http://de.selfhtml.org/javascript/sprache/regeln.htm#anweisungen@title=SelfHTML sagt>: "Eine Anweisung in JavaScript besteht immer aus einem Befehl, der mit einem Strichpunkt ; oder einem Zeilenumbruch abgeschlossen wird."

        Viele Gruesse,
        der Bademeister

  2. Hallo,

    ich soll eine Slidefunktion reparieren die in Javascript programmiert ist und zwar im IE aber nicht im FF funktioniert.

    wenn ich sowas

    // 19990410
    // Copyright (C) 1999 Dan Steinman

    [...]

    this.contentHeight = (is.ns)? this.content.doc.height : this.content.elm.scrollHeight
    this.contentWidth = (is.ns)? this.content.doc.width : this.content.elm.scrollWidth

    sehe, dann denke ich, dass man am besten was aktuelleres verwendet, ...

    Wo könnte denn der Fehler liegen dass das nicht funktioniert? Wie gesagt im IE geht es aber nicht im FF...

    ... weil es 1999 noch keinen Ansatz zu Firefox gab und es nett ist, wenn solche Spielereien auch in Opera, Chrome, Safari, ... funktionieren.

    Freundliche Grüße

    Vinzenz