Solange mit maus über objekt scrollen
Marcus
- javascript
Hallo, habe eine scrollfunktion über eine iframe,
nun würde ich gerne wie bei der original scrollleiste beim gedrückt halten oder zumindest solange der anwender mit der maus über der grafik ist die seite scrollt. wenn ich die funktion onclick (ohne die schleife) ausführe dann klappt das auch wunderbar allerdings muss der anwender dann ein paar mal klicken ...
ich weis das die aktuelle version eine endlosschleife verursacht,
un der browser sich aufhängt, aber was anderes ist mir hierzu leider nicht eingefallen.
bin für alle ideen dankbar !
danke
marcus
Code in hauptseite:
---------------------------------------------------
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td><a onMouseover="navtab.scrollleft(1);" onMouseout="navtab.endscroll();"><img src="scrollleft.gif" border="0"></a></td>
<td width="100%"><iframe src="scroll_navtab.htm" id="navtab" name="navtab" style="display:block" width="100%" height="21" align="top" valign="top" scrolling="no" frameborder="0"></iframe></td>
<td><a onMousedown="navtab.scrollright(1);" onMouseout="navtab.endscroll();"><img src="scrollright.gif" border="0"></a></td>
</tr>
</table>
---------------------------------------------------
JS Code im iframe
--------------------------------------------------
<script language="JavaScript">
var doscroll = 0;
function scrollleft(i) {
doscroll = 1;
while(doscroll = 1)
{ window.scrollBy(-i,0); }
doscroll = 0;
}
function scrollright(i) {
doscroll = 1;
while(doscroll = 1)
{ window.scrollBy(i,0); }
doscroll = 0;
}
function endscroll() {
doscroll = 0;
}
</script>
-------------------------------------------------
N'Abend.
Zunächstmal: Warum so kompliziert... =) Ein i-frame hat doch in der Regel automatisch Scrollbars!
Und hier:
function scrollleft(i) {
doscroll = 1;
while(doscroll = 1)
{ window.scrollBy(-i,0); }doscroll = 0;
}
Warum sollte die while-Schleife aufhören? doscroll ist und bleibt 1.
Ich kann dir jetzt nicht auswendig sagen, wie du es genau machen musst, aber... doscroll außerhalb der Funktion definieren; eine scroll-Funktion mit setInterval starten, die doscroll immer wieder prüft und dann erst die Funktion aufruft, die das i-frame scrollt; doscroll wird dann mittels Mouseevents auf 1 oder 0 gesetzt. Am besten das ganze für jede Richtung.
Oder einfacher: Guck dir mal ganz genau an, wie es Leute gemacht haben, die das echt drauf haben! :)
Vierl Erfolg!
Bob
Hi,
danke für den tipp mit "setIntervall" das funzt ;)
gruß
marcus