# javascript scroller



## MF (17. Oktober 2002)

hi,

ich habe da ein für mich sehr schweres problem und zwar, ich arbeite grade an einer home page allerdings möchte ich weder gross mit flash noch mit frames oder iframes arbeiten, die seite soll lediglich für den ie optimiert werden.

Die seite wird in zahlreiche layer aufgeteilt werden und auch der content kommt in einen layer rein ... doch gibt es da kontent der oft grösser als der verfügbare layer ist ... daher brauche ich nun einen scroller ... damit meine ich aber nicht zwei feile mit denen ich jeweils nach oben bzw. nach unten scrollen kann, das wäre recht umständlich besonders für news posts oder gb einträge, daher muss nun ein richtiger scrollbalken her ... ich habe nur nich die geringste ahnung wie ich einen machen soll.

dieser scollbalken mus sich immer bei einem reload oder wehcseln der site an den jeweiligen kontent anpassen (grösse).

der kontent wird immer aus einer anderen datei rausgeholt und in den layer gesetzt von daher mus der scollbalken dynamisch sein.

ich hoffe das mir wer ein paar lösungvorschläge unterbreiten kann oder gleich nen ganzen quellcode anbieten kann.


so on ... die HafenRadde ... alias Marcus


----------



## simu (17. Oktober 2002)

I habe so einen Scroller programmiert...

Funktioniert in allen DOM Browsern.

Beispiel 

Downloade einfach folgendes file:
http://endlessx.com/scripts/scroller.oop.zip

die wichtigsten Befehle findest du auf der Beispiel-Seite.


----------



## MF (17. Oktober 2002)

hmm jetzt gehts dein server wieder aber da ist ein fehler auf der seite ... zeile 87, zeichen 1, fehler: scrollObject.scroller.number.1 ist null oder kein objekt


kann es daran liegen das ich hier den ie 5.5 verwende?


----------



## simu (17. Oktober 2002)

was genau siehst?

siehst du den scroller ganz unten oder siehst du nur text?


----------



## MF (17. Oktober 2002)

hmm ... ich sitze nu an meinem rechner zu hause der mit dem ie 6.0 unterwegs ist im netz und hier klapt es.

sieht ja schonmal recht nice aus.

ist zwar recht kompliziert aufgebaut aber ich denke ich finde mich da schon rein =) ... nochmal nen dickes thx

ps.: falls du auf meiner hp verewigt werden möchtest brauche ich ein paar daten von dir (nur die ich auch veröffentlichen soll)

Name
Nick
Alter
Geburtstag
E-Mail adresse
Home Page

bitte per mail schicken an:

hafenradde@teammajin.de

mit dem betreff:

!THX TO!

du würdest dann auf meiner seite unter der rubrik thx to zu sehen sein.

hier ein link wo man sich über den aktuellen status meiner seite informieren kann: http://unreal.ingame.de/forum/showthread.php?s=&threadid=1623


----------



## MF (18. Oktober 2002)

sagmal ist es eigendlich möglich komplette tabellen tags zu kopieren und in den layer mit der scrollbar zu setzen?

wenn ja wie? ich bekomm nur textformatierungs tags da rein aber tabellen und andere tags weigern sich wihement sich in den layer zu bewegen


----------



## simu (19. Oktober 2002)

der einfachste weg ist der:

1.: du hast ein Element mit dem content drinn, es kann jegliche art von HTML enthalten, diesen versiehst du mit einer id.

2.: dann rufst du folgenen Befehl auf:


```
scrollObject.scroller.number[ scrollerNummer ].changeContent( contentElement, 0 );
```

für _scrollerNummer_, setzest du die Nummer deines Scrollers ein, der erste hat die Nummer 0, der zweite die Nummer 1 etc.

für contentElement, setzest du dein Element welches den neuen Content enthält ein z.B.:


```
document.getElementById( 'elementID' )
```

hoffe das hilft dir weiter...


----------



## MF (20. Oktober 2002)

jop hast mir sehr geholfen und wie gesagt mein angebot das ich dich auf meiner hp verewige steht imemrnoch must mir nur die schon genannten daten per mail oder PN schicken


und nochmals ein dickes thx jetzt kann ich dieses doofe flash über bord schmeissen *juhu*


----------



## simu (20. Oktober 2002)

ok... eMail gesendet.

bei weiteren Fragen, nur posten


----------



## MF (20. Oktober 2002)

habe die mail bekommen und archiviert.


habe aber nun erneut eine frage ... meine seite holt sich den content immer aus einem anderen frame da dieser erst durch ein php script erstellt wird ... wie kann ich den content vom einen frame in den anderen bekommen?


----------



## simu (21. Oktober 2002)

dazu nimmst du als contentElement sowas:


```
window.frames[ 'framename' ].getElementById( 'ID_des_Elements_mit_dem_Content' )
```

das sollte dann funktionieren...


----------



## MF (26. Oktober 2002)

habs zwar noch nicht getestet aber sieht logisch aus ...

... so habe den scoller jetzt mal in meine seite eingebaut und er sieht doch recht cool aus ...

...just take a look: http://www.teammajin.de/preview/web/

nochmals thx


----------



## THE REAL TOOLKIT (26. Oktober 2002)

gefällt mir auch


----------



## MF (26. Oktober 2002)

ok ... läuft alles supa ... jetzt habe ich baer nur noch eine frage.

In der class value steht folgendes:



> class="scroll content 5 15 30 0 1"



scroll ist klar ist ist der style der in der in der css edfiniert ist, was ich nicht weis ist wofür das alles dahinter steht, kannst du mir das noch erklären?

na ja und wie solls anders sein ... ein dickes thx


----------



## simu (26. Oktober 2002)

also, es gibt zwei möglichkeiten einen scroller zu konstruieren, der eine is über eine js-funktion und der andere über das setzen einer bestimmten css-klasse, das funktioniert so, dass alle Elemente welche die Klasse "content" haben automatisch zu einem scroller umgebaut werden, die Klasse ist dann wie folgt aufgebaut:

"Klasse-des-gesamten-scrollers content speed-onmouseover speed-onmousedown speed-onmousewheel deleteContent barResize"

deleteContent sagt dem Script was es mit dem Element nach dem Bau des Scrollers tun soll: 0 = nichts, 1 = verstecken, 2 = löschen

barResize sagt dem Script ob der ScrollBar dem grösse des INhalts angepasst werden soll (1) oder nicht (0)


----------



## MF (26. Oktober 2002)

einen herzlichen dank jetzt habe ich die gesammte funktion verstanden ... wie lange machst du das denn schon?


----------



## simu (26. Oktober 2002)

webdesign zirka seit 4 Jahren, JS seit 2-3 Jahren


----------



## MF (30. Oktober 2002)

*ah frameübergreifend geht das ganze net *

son mist ... woll das mal grade ausprobieren den content aus einem anderen frame reinzuladen, aber egal wie ichs biege und quetsche kommt immer ein fehler:

Zeile: 412
Zeichen: 33
Fehler: 'null' is null or not an object
Code: 0
URL: scroller.oop.html

wenn du es dir anschauen willst ich habs mal hochgeladen

online: http://www.teammajin.de/scroller.oop.modifiziert/
zip: http://www.teammajin.de/scroller.oop.modifiziert.zip

ich hoffe du findest den fehler ... die seite die im frame "load" geladen wird, sobald man auf den button "change to framecontent" klickt, muss diese von selbst den content vom scroller im frame "main" ändern. Daher habe ich es mit "onLoad" im body versucht, habs auch mit nem button versucht um zu schaun obs daran lag, tat es aber nicht.


----------



## simu (4. November 2002)

tut mir leid das ich erst so spät schreibe...

also,
erstens habe ich gemerkt das du noch ein veraltetes.js-file hast, das neue findest du unter hier

dann zu deinem problem,

Ich habe versucht es zu lösen, kriege es aber nicht hin.

komisch daran ist, dass es in mozilla funktioniert...


----------



## MF (4. November 2002)

äuserst merkwürdig ... aber trotzdem danke ... werde ich es wohl so lösen das ich eine js variable genreriere und die dann in den hauptframe lade und von daus dann wie gewohnt ... boah ^^

vieleicht findet sich die lösung ja noch ...


mfg Marcus


----------



## simu (4. November 2002)

muss denn dieses externale loading wirklich sein?

wäre es nicht möglich einfach die Seite zu wechseln oder noch besser den Inahlt durch PHP zu wechseln?


----------



## MF (4. November 2002)

schau dir mal die seite wie ich sie derzeit habe an:

http://www.teammajin.de/preview/web

und du wirst sehen wie lam sich die seite aufbaut ... wenn der user nun auf einen link klickt würde sich ein teil neu aufbauen müssen und genau soetwas kann ich nicht ab ... wenn ich eins hasse dann wenn sich eine seite neu aufbauen muss umd inhalt zu wechseln.

summa sumaro: ja es muss ein ^^


----------



## simu (4. November 2002)

eine andere möglichkeit wäre alle seiten in divs zu packen und in diese der ersten Seite hinzuzufügen und zu verstecken.

dann wird das wechseln des scroll-inhaltes funktionieren, der einzige Nachteil ist, dass alle Inhalte bereits auf der ersten Seite geladen werden was sich möglicherweise stark auf die ladezeit auswirken kann.


----------



## Adam Wille (5. November 2002)

Ohne mich jetzt direkt einmischen zu wollen - ich hab mir die Dateien eben mal runtergeladen.

Also der IE 6 bringt besagte Fehlermeldung, der NN 7 führt zwar die Buttonaktion aus, aber ist nicht in der Lage, die Scrollbar des Scrollers zu bedienen, Opera 6.04 stellt den Scroller überhaupt nicht dar, sondern listet lediglich den content-Inhalt auf und Mozilla verhält sich genauso wie der Navigator.

Nicht lieber erstmal das Problem mit dem Scroller überhaupt lösen, bevor es weitergeht mit diversen Geschichten? 

nur ein gutgemeinter Hinweis,
Geist


----------



## MF (5. November 2002)

ich glaube ich habe eine möglichkeit gefunden das frame problem zu lösen ... mus mir aber erstmal ausprobieren ... kann bis heute abend dauern ^^

@Geist: meine seite soll vorerst nur für den IE optimiert sein alle weiteren optimierungen kommen dann wenn die seite im ie einwandfrei läuft. Ich möchte jetzt keine blöden komentare hören, von wegen was warum ausgerechnet ie? Ganz einfach weil dieser browser am wenigsten rumzickt.

*[edit]

juhu nu klappt es:

http://www.teammajin.de/scroller.oop.modifiziert/

[/edit]*


----------



## simu (5. November 2002)

ja so klappts, nur leider mit einer nicht-standart-methode (innerHTML)... es sollte auch anders gehen, nur scheint der IE da einen bug zu haben.

aber innerHTML funktioniert natürlich auch

der scroller funktioniert in Moz, du musst nur das neue js-file herunterladen...

@Geist
Das script prüft zuerst ob der Browser die Anforderungen erfüllt und erst dann werden alle styles hinzugefügt, Opera erfüllt diese Anforderungen nicht und erhält somit nur den content...


----------



## Act of Fate (5. November 2002)

Einfach über PHP-Skript includen den Inhalt, kein innerHTML!!
IM Content.LAYER::

```
<?php
if (isset($_GET['content']))
{
  include($_GET['content'],'.php');
}

?>
```

Dann rufst du den Inhalt einfach per URL auf!!!

Beispiel: index.php?content=news

jetzt lädt er die datei news.php in den Layer


----------



## MF (6. November 2002)

?

bin nicht so der php profi aber immer wenn ich ne php aufrufe baut er de komplette seite neu auf ... ode rmache ich was falsch?

erklär mir mal das beispiel etwas genauer ich habe keinen plan wie das gehen soll.


----------



## THE REAL TOOLKIT (6. November 2002)

Ne PHP is serverseitig,die Seite muss deshalb neugeladen werden.


----------



## MF (6. November 2002)

wollt schon fragen ^^


und ich dachte schon mein 55€ php buch wäre schrott


----------

