Slidefunktion funktioniert nicht im FF
Sebastian
- javascript
0 LX0 Vinzenz Mai
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
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
Hi,
- 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
Fällt dir vielleicht eine Lösung dazu ein? Die Seite darf ich nicht nennen. Wegen Kundenklau usw...
Grüße!
Sebastian
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
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
In solchen Fällen hilft es, schnell eine minimalisierte Seite ohne finale Inhalte zu bauen, die das Problem illustriert.
Gruß, LX
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
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
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