Scroll-Script
Ben
- javascript
Hallo,
es ist wohl ein leidiges Thema, aber ich möchte es dennoch anschneiden.
Ich möchte einen normalen Frame mit Hilfe von zwei Grafiken in einem anderen Frame und nem JavaScript scrollen. Ich habe mir gedacht, dass ich das ganze über die window.scrollBy()-Funktion löse. Jedoch springt das Fenster derzeit einfach. Ich habe überlegt, das ganze mit einer for-Funktion zu lösen, doch auch da springt es.
Mir fehlt wohl irgendwie der Denkansatz. Könnte mir da vielleicht jemand einen Ansatz liefern?
Vielen Dank im Voraus,
Ben
Ich möchte einen normalen Frame mit Hilfe von zwei Grafiken in einem anderen Frame und nem JavaScript scrollen.
wie kann man in einen anderen frame scrollen???
willst du die seite nur nach unten scrollen lassen????
<script language="JavaScript1.2">
top.window.moveTo(0,0);
if (document.all) {
top.window.resizeTo(screen.availWidth,screen.availHeight);
} else if (document.layers||document.getElementById) {
if (top.window.outerHeight<screen.availHeight||top.window.outerWidth<screen.availWidth){
top.window.outerHeight = screen.availHeight;
top.window.outerWidth = screen.availWidth;
}
}
var speed=1
var currentpos=0,alt=1,curpos1=0,curpos2=-1
function initialize(){
startit()
}
function scrollwindow(){
if (document.all)
temp=document.body.scrollTop
else
temp=window.pageYOffset
if (alt==0)
alt=1
else
alt=0
if (alt==0)
curpos1=temp
else
curpos2=temp
if (curpos1!=curpos2){
if (document.all)
currentpos=document.body.scrollTop+speed
else
currentpos=window.pageYOffset+speed
window.scroll(0,currentpos)
}
}
function startit(){
setInterval("scrollwindow()",10)
}
window.onload=initialize
</script>
Hi Till,
danke für deine Mühen, aber ich glaube, du hast mich falsch verstanden...
Ich möchte einfach mit einem JavaScript den Inhalt eines Frames hoch- und runterscrollen können. Dies geschieht eben mit zwei Grafiken (Pfeil nach oben & Pfeil nach unten), die jedoch in einem anderen Frame sind. Das Ansprechen des Frames ist ja aber kein Problem. Das kann ich ja einfach mit parent.inhalt
Ich habe dein Script nur überflogen, aber irgendwie scheint es nicht das zu bewirken, was ich erwartet habe, bzw. sieht es sehr kompliziert aus.
Viele Grüße,
Ben
<div id="staticbuttons" style="position:absolute;">
<a href="javascript:" onmouseover="myspeed=-thespeed" onmouseout="myspeed=0"><img
src="arrows_up.gif" border="0"></a><br>
<a href="javascript:" onmouseover="myspeed=thespeed" onmouseout="myspeed=0"><img
src="arrows_dn.gif" border="0"></a>
</div>
<script>
var Hoffset=70
var Voffset=80
var thespeed=3
var ieNOTopera=document.all&&navigator.userAgent.indexOf("Opera")==-1
var myspeed=0
var ieHoffset_extra=document.all? 15 : 0
var cross_obj=document.all? document.all.staticbuttons : document.getElementById? document.getElementById("staticbuttons") : document.staticbuttons
function positionit(){
var dsocleft=document.all? document.body.scrollLeft : pageXOffset
var dsoctop=document.all? document.body.scrollTop : pageYOffset
var window_width=ieNOTopera? document.body.clientWidth+ieHoffset_extra : window.innerWidth+ieHoffset_extra
var window_height=ieNOTopera? document.body.clientHeight : window.innerHeight
if (document.all||document.getElementById){
cross_obj.style.left=parseInt(dsocleft)+parseInt(window_width)-Hoffset
cross_obj.style.top=dsoctop+parseInt(window_height)-Voffset
}
else if (document.layers){
cross_obj.left=dsocleft+window_width-Hoffset
cross_obj.top=dsoctop+window_height-Voffset
}
}
function scrollwindow(){
window.scrollBy(0,myspeed)
}
function initializeIT(){
positionit()
if (myspeed!=0){
scrollwindow()
}
}
if (document.all||document.getElementById||document.layers)
setInterval("initializeIT()",20)
</script>
Hi Till,
danke, aber irgendwie steige ich da überhaupt nicht richtig durch.
Ich hatte eher daran gedacht, dass ich irgend eine "kleine" Funktion habe, mit der ich (vielleicht in einer for-Schleife o.ä.) etwas ähnliches wie scrollBy aufrufe. Nur muss das ganze irgendwie mit setTimeout oder so etwas laufen, da ja der Scrollvorgang gesehen werden soll.
Viele Grüße,
Ben
Hallo Ben,
ja das geht auch ganz einfach: In den Header:
function ScrollUp()
{ parent.MenuFrame.scrollBy(0,-1);
}
function StartScrollUp()
{ ScrollAction = window.setInterval("ScrollUp()", 10);
}
function ScrollDown()
{ parent.MenuFrame.scrollBy(0,1);
}
function StartScrollDown()
{ ScrollAction = window.setInterval("ScrollDown()", 10);
}
function StopScroll()
{ window.clearInterval(ScrollAction);
}
Und in den Body an geeigneter Stelle (z. B. in einer Tabelle):
<td onMouseover="StartScrollDown()" onMouseout="StopScroll()"><img src="ArrowDn.gif"></td>
<td onMouseover="StartScrollUp()" onMouseout="StopScroll()"><img src="ArrowUp.gif"></td>
Das funktioniert zwar so, ist aber natürlich noch nicht sehr professionell. Aber ich denke Du siehst, was passiert.
Ciao
Hans-Peter
Ach so ja, habe ich vergessen: Eine globale Variable "ScrollAction" brauchts natürlich auch noch.
Ciao
Hans-Peter
Hi Hans-Peter,
vielen Dank. Das ist doch in den Grundzügen schon genau das, was ich wollte. :)
Ein paar kleine Änderungen sind ja kein Problem mehr. Mir fehlte eben nur der Ansatz.
Viele Grüße,
Ben