Seite scrollen, solange Maus auf Grafik ist
david87hd
- javascript
Hallo,
ich will die Scrollbalken im Browser mit 2 Navigationsgrafiken (Up, down) ersetzen und dann mithilfe von ScrollBy() scrollen. Mein Problem ist aber, dass wenn ich in den img ein onMouseOver oder ein onMouseDown die funktion nur einmal aufgerufen wird und damit nur den angegebenen Wert einmal scrollt und nicht solange scrollt, bis der User die Maus wieder von der Grafik nimmt. Mal kurzes Beispiel:
function scrolldown()
{
window.ScrollBy(0,10)
}
<img src="down.gif" onMouseOver="scrolldown();">
Ein onMouseOut hilft hier auch nicht, weil die funktion ohnehin nur einmal ausgeführt wird und nicht solange die Maus auf der Grafik bleibt. habs auch schon mit ner globalen Variable versucht und ner Schleife. Der Variable wurd dann von der durch onMouseOut aufgerufenen Funktion ein neuer Wert zugewiesen und die Schleifenbedingung wäre nicht mehr erfüllt, nur es führte zu einer Endlosschleife.
Ich glaub im Grunde ist jedem klar, was ich will... oder?
david87hd
Ein onMouseOut hilft hier auch nicht, weil die funktion ohnehin nur einmal ausgeführt wird
Das ist ja auch richtig, da Du beim mouseout/over oder was auch immer die Funktion nur startest. Es gibt bei Dir keine Bedingung, die abfragt, ob die Maus auch noch über Deinem Bild ist/nicht ist.
Im Übrigen finde ich persönlich keine pausible Begündung dafür, die Balken zu deaktivieren!
Johannes
Hallo,
ich will die Scrollbalken im Browser mit 2 Navigationsgrafiken (Up, down) ersetzen
Solche Scripts gibt es zu hauf. Eine einfache Googlesuche sollte dir helfen:
http://www.google.com/search?hl=de&q=dhtml+scroll&btnG=Suche
Bedenke, das Besucher deiner Seite Javascript deaktivert haben könne.
In diesem Fall sollte auch ohne Javascript das Scrollen möglich sein.
Mein Tipp:
Eine Seite bedarf nicht solcher Spielereien.
mfg NAG
Versuchs mal in dem Du beim mouseover ein Flag setzt (z.B. mausaufbild=1)
und die Funktion startest, die scrollt.
In der Funktion dann abfragst ob, das flag gesetzt ist, wenn ja, dann scrollen. Am Ende mit window.setTimeout die Funktion neu aufrufen, und weiter scrollen.... usw.
Beim onmouseout das flag auf 0 setzen.
etwa so:
function MyScroller()
{
if(mausaufbild==1)
{
// hier scrollbefehl
window.setTimeout("MyScroller()", 100);
}
}
und dann:
<img src="" alt="" onmouseover="mausaufbild=1;MyScroller()" onmouseout="mausaufbild=0">
Gruß
Christian
Hallo,
ich will die Scrollbalken im Browser mit 2 Navigationsgrafiken (Up, down) ersetzen und dann mithilfe von ScrollBy() scrollen. Mein Problem ist aber, dass wenn ich in den img ein onMouseOver oder ein onMouseDown die funktion nur einmal aufgerufen wird und damit nur den angegebenen Wert einmal scrollt und nicht solange scrollt, bis der User die Maus wieder von der Grafik nimmt. Mal kurzes Beispiel:
function scrolldown()
{
window.ScrollBy(0,10)
}<img src="down.gif" onMouseOver="scrolldown();">
Ein onMouseOut hilft hier auch nicht, weil die funktion ohnehin nur einmal ausgeführt wird und nicht solange die Maus auf der Grafik bleibt. habs auch schon mit ner globalen Variable versucht und ner Schleife. Der Variable wurd dann von der durch onMouseOut aufgerufenen Funktion ein neuer Wert zugewiesen und die Schleifenbedingung wäre nicht mehr erfüllt, nur es führte zu einer Endlosschleife.
Ich glaub im Grunde ist jedem klar, was ich will... oder?
david87hd
david87hd,
Ich glaub im Grunde ist jedem klar, was ich will... oder?
Ich glaub im Grunde ist dir nicht klar, was der User will... oder?
[ ] Er will auch ohne JavaScript die Seite benutzen können.
[ ] Er will auch mit dem Mausrad scrollen.
[ ] Er will in der ihm angenehmen Geschwindigkeit scrollen.
[ ] Er will nicht die Seite nach selbst gestalteten Elementen zum Scrollen durchsuchen.
[ ] Er will nicht mit der Maus längere Zeit auf einer Stelle verharren müssen.
Kurz:
[ ] Er will Scrollbalken.
Gunnar
Erstmal danke für die ganzen Tipps... Habs gleich nach dem Posten selbst hinbekomm. Auch über setTimeout.
Ich will die Scrollbalken (wenn JS aktiviert!!) ausblenden lassen, da die Seite (www.t-mofa.de.vu, bisher noch mit alten scollbalken) einen übergang als hintergrund hat und die scrollbalken, egal welcher farbe, den verlauf nicht mitmachen, da es keine transparenten scrollbalken gibt.
david87hd,
da es keine transparenten scrollbalken gibt.
Die wären auch sinnfrei.
Gunnar