Seite einblenden
Markus
- dhtml
0 Mirko Richter0 Markus
0 Alex0 Markus
Hallo!
Ich möchte auf meiner Homepage erreichen, dass der Inhalt der einzelnen Seiten nach und nach
eingeblendet wird. Es funktioniert auch sehr gut, bis auf die Tatsache, dass bei Seiten, deren Inhalt über
den Anzeigebereich hinausgeht keine Scrollbars angezeigt werden und man so den Rest der Seite nicht
sehen kann(NS). Hier das Script:
<head>
<link rel=stylesheet type="text/css" href="format.css">
<style>
<!--
#Absatz { position: absolute; left: 0; top: 0; width: 750; clip: rect(0 0 0 0);
background-color:#FFECC4; border-width: thin; border-style: none;
visibility: visible; }
//-->
</style>
<script language="JavaScript">
<!--
var ie = document.all ? 1 : 0;
var ns = document.layers ? 1 : 0;
var geschwindigkeit = 10;
var x = 0;
var y = 0;
function Blenden()
{
if (x == 750)
return;
x += 5;
y += 10;
if (ie)
document.all.Absatz.style.clip = "rect(0 " + x + " " + y + " 0)";
else if (ns)
{
document.Absatz.clip.height = x;
document.Absatz.clip.width = y;
}
window.setTimeout ('Blenden()', geschwindigkeit);
}
//-->
</script>
</head>
<body bgColor="#FFECC4" onLoad="if (document.all document.layers) window.setTimeout('Blenden()', 300);">
<div id="Absatz">
....
</div>
</body>
Wer kann mir weiterhelfen?Danke im voraus!
Markus
Hallo Markus!
bei Seiten, deren Inhalt über den Anzeigebereich hinausgeht keine Scrollbars angezeigt werden und man so den Rest der Seite nicht
sehen kann(NS).
Setze mal nach dem abschliessenden DIV-Tag ein (nonbreaking space), dann sollten die Scrollbalken angezeigt werden.
Gruss
Mirko
Hi Mirko!
Setze mal nach dem abschliessenden DIV-Tag ein (nonbreaking space), dann sollten die Scrollbalken angezeigt werden.
Habs probiert, bringt aber keine Änderung. Trotzdem danke.
Markus
Hallo Markus!
Ich dachte, dass ich ein Problem das ich mal hatte einfach so auf Deines übertragen kann. Hat nicht geklappt, sorry.
Hab' Dein Script nochmal getestet.
Lass' die Clip-Angabe in der CSS-Definition von Absatz mal weg. Der NS berechnet nämlich den Platz, den er für den Layer mit den Clip-Werten (0,0,0,0) benötigt und der ist nunmal 0. Folglich werden auch keine Scrollbalken dargestellt.
Gruss
Mirko
Hallo Mirko!
Lass' die Clip-Angabe in der CSS-Definition von Absatz mal weg. Der NS berechnet nämlich den Platz, den er für den Layer mit den Clip-Werten (0,0,0,0) benötigt und der ist nunmal 0. Folglich werden auch keine Scrollbalken dargestellt.
Jetzt kann ich die Seite zwar scrollen, aber der Text, der ausserhalb des Anzeigebereiches war ist nicht
zu sehen.
However, ich habe inzwischen ein anderes Script genommen und es ein wenig geändert. Es ist ein
Script, das einen Vorhang, der aus 4 waagerechten Teilen besteht, generiert. Funktioniert jetzt:
<html>
<head>
<script language="JavaScript">
<!--
//gismoFX
//http://www.gismo.at
var brzina=20
var trenutni=new Array()
var trenutni2=new Array()
if (document.layers){
for (i=1;i<=4;i++){
trenutni[i]=eval("document.i"+i+".clip")
trenutni2[i]=eval("document.i"+i)
trenutni[i].width=window.innerWidth
trenutni[i].height=window.innerHeight/4
trenutni2[i].top=(i-1)*trenutni[i].height
}
}
else if (document.all){
var clipright=document.body.clientWidth,clipleft=0
for (i=1;i<=4;i++){
trenutni[i]=eval("document.all.i"+i+".style")
trenutni[i].width=document.body.clientWidth
trenutni[i].height=document.body.offsetHeight/4
trenutni[i].top=(i-1)*parseInt(trenutni[i].height)
}
}
function otvori(){
window.scrollTo(0,0)
if (document.layers){
for (i=1;i<=4;i=i+2)
trenutni[i].left+=brzina
for (i=2;i<=4;i=i+2)
trenutni[i].left+=brzina
if (trenutni[2].left>window.innerWidth)
clearInterval(zaustavi)
}
else if (document.all){
clipright-=brzina
for (i=1;i<=4;i=i+2){
trenutni[i].clip="rect(0 "+clipright+" auto 0)"
}
clipleft+=brzina
for (i=2;i<=4;i=i+2){
trenutni[i].clip="rect(0 auto auto "+clipleft+")"
}
if (clipright<=0)
clearInterval(zaustavi)
}
}
function gismoFX(){
zaustavi=setInterval("otvori()",13)
}
gismoFX()
//-->
</script>
</head>
<body bgColor="#FFECC4">
<div id="i1" class="Absatz"></div>
<div id="i2" class="Absatz"></div>
<div id="i3" class="Absatz"></div>
<div id="i4" class="Absatz"></div>
<script language="JavaScript" type="text/javascript" src="javascripts/vorhang.js">
</script>
.....
</body>
</html>
Hallo Mirko!
However, ich habe inzwischen ein anderes Script genommen und es ein wenig geändert. Es ist ein
Script, das einen Vorhang, der aus 4 waagerechten Teilen besteht, generiert. Funktioniert jetzt:
Hab noch die Style-Angabe für 'Absatz' vergessen:
<style>
.Absatz { position:absolute; left:0; top:0; layer-background-color:#FFECC4;
background-color:#FFECC4; border:0.1px solid white }
</style>
Tschüss Markus
Leider habe ich Deinen Code nicht so recht verstanden
(Schmach und Schande über mich)
Aber vielleicht kannst Du mir da weiterhelfen.
Ich habe eine dynamische Seite (aus der Datenbank generiert)
Doch im grunde sieht es so aus:
Die Seite besteht aus eine äussere tabelle (mit höhe 90%)
untehalb der Tabelle soll ein Layer sein.
Wird die Tabelle zu groß (außerhalb der SIchtweite)
dann verschindet der Layer bzw. man kann nur bis
zum ende der tabelle scrollen
Alex
Hi Markus!
Also das Problem hatte ich auch gehabt.
bzw. habe ich immer noch.
hier ein Link der Dir evtl. weiterhelfen soll
http://www.teamone.de/selfhtml/sfarchiv/2000_1/t11244.htm
Das Problem ist halt: Netscape berechnet die Seite wohl nicht
zur laufzeit.
Entweder Du resevierst einen großen bereich für Dein
Scrollen. Oder Du musst es berechnen lassen wie es
oben im dem Link erklärt wird.
hoffe, es hat Dir etwas Gebracht
Sag mir ob das funktioniert. Vielleciht kann ich
weiterhelfen
(aber momentan sitze an dem gleichen Problem :o). Jedoch viel komplizierter)
Alex
Hallo Alex!
Sag mir ob das funktioniert.
Hab's ehrlich gesagt nicht ausprobiert, denn ich habe das Problem inzwischen mit einem anderen Script
gelöst. Trotzdem Danke!
Vielleicht hilft dir meine Lösung ja weiter: siehe meine letzte Antwort an Mirko!
Tschüss Markus