iFrame: Scrollen mit Buttons

TimMcInnery schrieb am 07.04.2013 um 10:04 Uhr

Hallo zusammen,

beim Testen meiner Website ist mir aufgefallen, dass iFrame auf dem Handy schlecht (Android) oder garnicht (iPhone) scrollbar sind. Es is auch nich zu sehen, dass man überhaupt scrollen kann, sprich der "normale" Scrollbalken wird nicht angezeigt.

Um das Handling der scrollbaren iFrames zu verbessern hier also die Idee: Ich füge Buttons ein für hoch und runter. Hat jemand eine Quelltext Idee dafür?

Vielen Dank im Vorraus,

Tim

 

Kommentare

TimMcInnery schrieb am 07.04.2013 um 12:18 Uhr

So, ich habs selber geschafft. *FREU*

Lesen ist toll:

http://www.dynamicdrive.com/dynamicindex17/iframescroll.htm

Den Code für die iFrame Seite habe ich genauso übernommen.

Die Buttons sind so eingebunden: (über Webeigenschaften -> Platzhalter)

<a href="#" onMouseover="scrollspeed=-2" onMouseout="scrollspeed=0">

<img style="border: 0px solid ; width: 50px; height: 50px;" alt="" src="button/up.png">

</a>

Weiterführende Frage: Kann ich den ersten Teil des Codes auch anders in einen richtigen Butten einfügen? Also phne "Platzhalter" und neues verlinken der Button Grafik?

 

Holger_NLP schrieb am 07.04.2013 um 12:58 Uhr

Hallo,

klingt super. Du hast das ja auch in diesen Thread gepostet. Danke dafür.

Hast du vielleicht einen Link, unter dem ich mir das Ergebnis einmal ansehen kann? Das wäre klasse.

Danke und Gruß,

Holger

marboe schrieb am 07.04.2013 um 13:16 Uhr

Hallo, mich hat das jetzt doch neugierig gemacht und ich hab folgendes ausprobiert:

Du kannst hier zum scrollen wunderbar mit der WD-eigenen Funktion der Anker arbeiten. Dass diese Anker auch in einem iframe funktionieren, habe ich grad extra getestet. Es funktioniert sogar wenn man die Einstellungen des Linkübergangeffekts verändert; also zum Beipiel "von unten hereingleiten".  Es geht also auch viel einfacher . Gruß Martina

TimMcInnery schrieb am 08.04.2013 um 09:43 Uhr

Hallo Martina,

Kannst du das ein wenig ausführlicher beschreiben? Ich habe mit Anker noch nichts (bewusst) gemacht, außer Bilder zu verankern.

Ich bin mit meiner Lösung noch etwas unzufrieden, weil es auf Mobilgeräten immer stur is zum Ende scrollt. 

 

Viele Grüße,

Tim

 

 

marboe schrieb am 08.04.2013 um 10:46 Uhr

Hallo Tim,

klar. Das ist ganz einfach. Du markierst mit dem Textwerkzeug die Textstelle zu der gescrollt werden soll. Dann wählst du "Extras" -> Namen. Dort vergibst du einen Namen den du wiederfindest und den das Programm nicht selbst benutzt. (siehst du ja an der Auswahl).

Dann markierst du die oberer Textstelle von der aus gescrollt werden soll und wählst unter Webeigenschaften -> Links -> Link auf Anker. Da solltest du deinen eben vergebenen Namen wiederfinden.

Beim WD 8 premium kannst du das sogar seitenübergreifend machen. Ob das bei anderen Versionen auch schon funktioniert weiss ich leider nicht.

Und das ganze funktioniert sogar wie geschrieben innerhalb eines iframes. Dort hast du ja vorbereitet eine Extraseite, die nur und ausschließlich den langen Text enthält. Dort kannst du mit diesen Ankern entsprechend arbeiten.  Diese "fast leere Seite" bindest du später ja als iframe auf einer anderen Seite im Projekt ein und der Scrollbalken erscheint entsprechend dem iframe-Code automatisch. Gruß Martina

TimMcInnery schrieb am 08.04.2013 um 19:19 Uhr

Hallo Martina,

habe es probiert und geht auch, aber ist immer noch nicht das was ich wirklich will.

Ich bin auf der Suche nach einer Möglichkeit, den iFrame definiert um X Pixel nach oben oder unten zu scrollen. Aber ich bin offensichtlich noch zu blöd dazu.

Der Code müsste wohl so aussehen:

<input type="button" onclick="frame1.scrollBy(0,-200)"  value="Up" />
<input type="button" onclick="frame1.scrollBy(0, +200)"  value="Down" />

Aber es passiert stur garnix. 

Mein Hauptproblem wird wohl der Name des iFrame sein, wo muss ich den festlegen? Innerhalb der HTML Seite, welche ich einbinde?

Gruß

Tim

 

 

marboe schrieb am 08.04.2013 um 20:55 Uhr

Schau doch mal hier, ob dir das weiterhilft.  Gruß Martina

TimMcInnery schrieb am 08.04.2013 um 22:58 Uhr

Hallo,

nein, weil es wieder ein Beispiel ist, was meine Seite zu einem absoluten Punkt scrollt. Mein iFrame ändert sich aber recht oft, so dass ich nicht mit absolutem Bezug scrollen will. Also kein "ScrollTo" oder Anker.

Die beiden Funktionen, die ich brauche sind "scrollBy" oder auch "scrollByLines". Wenn ich die Buttons IM iFrame platziere, machen sie auch genau was ich erwarte. Nur leider ist das beknackt, weil irgendwann der Button nicht mehr sichtbar ist.

Wenn ich den Button aber auf der Seite einbaue, wo der iFrame eingebunden ist, dann passiert entweder garnichts oder der Button scrollt die Hauptseite. Wie verknüpfe ich nun also den Button richtig mit dem iFrame?

Viele Grüße,

Tim

BeRo schrieb am 08.04.2013 um 23:29 Uhr

[...] Wie verknüpfe ich nun also den Button richtig mit dem iFrame? [...]

Schau Dir mal die Demo an, die ich gerade online gestellt habe.

Die gezeigte Scrollmethode sollte auch in iframes auf Tablet-, Smartphone & Co. funktionieren

Wenn die Lösung zu Deinem Problem passt, kannst Du Dir hier die komplette WD Projektdatei herunterladen, inkl. der Grafiken Up/Down, inkl. der nötigen JS Codeschnipsel und inkl. einer Kurzanleitung.

Viel Erfolg

 

Zuletzt geändert von BeRo am 08.04.2013, 23:29, insgesamt 1-mal geändert.

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

TimMcInnery schrieb am 09.04.2013 um 00:13 Uhr

Hallo BeRo,

das kommt der Sache schon sehr nahe. Aber:

Die Buttons sind hier auch wieder IM iFrame. Es hat also die gleiche Funktion wie mein Button <button onclick="scrollByLines(-5);">up 5 lines</button>

Ich brauche den Button außerhalb vom iFrame. So lassen sich alle iFrames gleich bedienen, auch wenn der Inhalt unterschiedlich ist.

Dein Weg nimmt den darzstellenden Text ja aus dem HTML-code des Platzhalters. Das halte ich aber nicht für einfach zu bedienen, wenn man Informationen nachtragen will oder Biilder einfügen möchte.

Ich hoffe es wird klar, auf was ich hinaus will?

Auf jeden Fall danke für deine Hilfe.

Tim

 

 

TimMcInnery schrieb am 09.04.2013 um 12:27 Uhr

Hallo,

jetzt bin ich über eine Sache "gestolpert", die man als prima Beispiel nehmen kann, warum im IFrame kein Code zu Steuerung sein darf: Das implementierte Jotform-Kontaktformular lässt sich so nicht scrollen.

Ich hoffe ihr habt noch ein paar Tipps für den "externen" Button.

Gruß,

Tim

Holger_NLP schrieb am 10.04.2013 um 12:52 Uhr

Hallo,

ich habe auch noch keine zufriedenstellende Lösung für das Problem gefunden.

Aber hier und hier sind Beispiele, wie es auf dem iPad / iPhone aussehen soll und funktioniert. Ist aber nicht per iFrame gelöst. Weiß jemand, wie man das mit WD umsetzen kann?

Gruß,

Holger

BeRo schrieb am 10.04.2013 um 18:57 Uhr

@ Holger_NLP

Die Macher der von Dir gefundenen Demo arbeiten mit div-Containern-, JavaScript- und CSS. Allerdings beschränkt sich der scrollbare Inhalt auf eine Liste, die lediglich per JavaScript erzeugt wurde und die mit CSS formatiert wurde.

[...] Weiß jemand, wie man das mit WD umsetzen kann? [...]

Wie ich schon weiter unten geschrieben habe, mit einer div-Box.

Im einfachsten Fall legst Du einen Platzhalter in der gewünschten Größe an und füllst dann den HTML Bodybereich des Platzhalters mit dem gewünschten Inhalt.

In dem unten gezeigten Beispiel ist das einfacher Text. Jeder andere Inhalt ist aber ebenfalls machbar.


Die online Demo des o. a. Beispiels kannst Du Dir hier ansehen.

Die WD Projektdatei mit der gefüllten div-Box kannst Du Dir hier für eigene Experimente herunterladen.

Viel Erfolg

Zuletzt geändert von BeRo am 10.04.2013, 18:57, insgesamt 1-mal geändert.

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

TimMcInnery schrieb am 12.04.2013 um 08:44 Uhr

Hallo, es scheint vollbracht.

BeRo hat den Weg gezeigt, mal muss es nur etwas genauer lesen. IM div Bereich den iFrame einbinden ist die Lösung.

Ich bin hier: http://www.dynamicdrive.com/forums/showthread.php?10718-Scroll-bar-buttons-to-control-Iframe

über meine Lösung gestolpert, die aber wie gesagt von BeRo ebenso beschrieben wurde.

Mein Text sieht (etwas modifiziert) so aus:

<div style="position:relative;width:620px;height:600px;">
<iframe name="bob" src="content.htm" width="580" height="600" scrolling="no" frameborder="0"></iframe>

<div id="staticbuttons" style="position:absolute;top:0;right:0">
<a href="javascript:void(0);" onmouseover="image1.src='button/up_hover.png'; myspeed=-thespeed;" onmouseout="image1.src='button/up.png'; myspeed=0;">
<img name="image1" src="button/up.png" border="0"</a>
</div>
<div id="staticbuttons" style="position:absolute;bottom:0;right:0">
<a href="javascript:void(0);" onmouseover="image2.src='button/down_hover.png'; myspeed=thespeed;" onmouseout="image2.src='button/down.png'; myspeed=0;">
<img name="image2" src="button/down.png" border="0"</a>
</div></div>
<script type="text/javascript">

//Iframe Scroller script - loosely adapted from:
//Page Scroller (aka custom scrollbar)- By Dynamic Drive
//For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
//adapted by jscheuer1 in http://www.dynamicdrive.com/forums
//This credit MUST stay intact for use

var thespeed=3 //Enter scroll speed in integer (Advised: 1-3)

var myspeed=0  //Set for initial scrolling, if desired (ex:3), otherwise 0

/////////////////Stop Editing///////////////
function scrollwindow(){
bob.scrollBy(0,myspeed)
}

function initializeIT(){
if (myspeed!=0){
scrollwindow()
}
}

if (document.all||document.getElementById)
setInterval("initializeIT()",20)

</script>

 

So hat man Buttons, die sich (wie eine Scrollbar) automatisch am DIV frame ausrichten und auch noch ihre Farbe ändern bei Betätigung.

Im Link ist auch beschrieben, wie man externe URL (z.B. eben das Kontaktformular) einbindet, das geht quasi über einen zweiten iFrame im ersten iFrame.

Viele Grüße

Tim

 

Holger_NLP schrieb am 13.04.2013 um 20:30 Uhr
Die WD Projektdatei mit der gefüllten div-Box kannst Du Dir hier für eigene Experimente herunterladen.

Viel Erfolg

Hallo BeRo,

würde gerne mit der Projektdatei experimentieren. Leider scheint der Link nicht korrekt zu funktionieren.

Gruß,

Holger

BeRo schrieb am 13.04.2013 um 23:15 Uhr

@ Holger_NLP

[...] Leider scheint der Link nicht korrekt zu funktionieren. [...]

Du hast recht. Die verlinkte Datei lag nicht korrrekt im Webspace

Ich hab's gerade korrigiert. Der Link zur Projektdatei funktioniert jetzt.

Viel Erfolg

Zuletzt geändert von BeRo am 13.04.2013, 23:15, insgesamt 1-mal geändert.

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

ralf-best schrieb am 04.05.2014 um 00:06 Uhr

Hallo BeRo,

danke für Deine Projektdatei. Funktioniert gut, aber welche Ergänzungen muss man im html-code vornehmen um die Schriftgröße, Stil und auch Farbe vorzugeben?

Gruß

Ralf

BeRo schrieb am 04.05.2014 um 00:25 Uhr

@ ralf-best

[...] welche Ergänzungen muss man im html-code vornehmen um [...]...

Das geht "ganz einfach" mit den üblichen Instrumenten für die HTML Textbearbeitung

Wirf mal einen Blick auf diese Seite, da findest Du schon die wichtigsten Infos und ein paar Beispiele.

Wenn Du dann noch Fragen hast, melde dich einfach wieder.

Viel Erfolg

Zuletzt geändert von BeRo am 04.05.2014, 00:25, insgesamt 1-mal geändert.

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

ralf-best schrieb am 05.05.2014 um 00:45 Uhr

Hallo BeRo,

hat alles gut funktioniert.

Leider funktioniert aber die Scrollbar nicht nach dem Veröffentlichen auf der Homepage. In der Seitenvorschau war alles tadellos. Es geht weder unter FF noch unter IE. Wobei das wahrscheinlich nichts damit zu tun hat.

In Deiner Vorlage habe ich lediglich meinen Text nach folgendem Code eingegeben:

<div id="div1" style="width:500px; height:410px; overflow:auto">
<font size=4 color=#a0b200 face="Verdana, NewTimesRoman">

diverser Text ....................

<P>End
</div>

Was ist das Problem, denn wie gesagt, in der Einzelseitenvorschau war alles o.k.?

Gruß

Ralf

BeRo schrieb am 05.05.2014 um 22:09 Uhr

@ ralf-best

[...] Leider funktioniert aber die Scrollbar nicht nach dem Veröffentlichen auf der Homepage [...]

Ich habe die Zeichenformatierung, die Du eingefügt hast, der Demo ebenfalls angefügt. Das Ergebnis kannst Du hier sehen. Es funktioniert nach wie vor...

[...] Es geht weder unter FF noch unter IE. Wobei das wahrscheinlich nichts damit zu tun hat.[...]

So ganz egal ist es leider nicht. Der IE hat, wie so oft, auch in dem Fall eine eigene Meinung über die Scrollfunktion in einer DIV Box.
Er arbeitet damit aber es kann, je nach IE Version, bei langen Boxinhalten haken . Dann kann man entweder den Mauszeiger irgendwo auf die Scrollbar setzen und mit dem Mausrad scrollen oder man scrollt den Boxinhalt indem man den Scrollschieber bei gedrückter Maustaste verschiebt.

So oder so, funktionieren sollte es...

Da das bei Deiner Site offenbar nicht so ist, solltest Du uns mal eine URL spendieren, damit das nachvollziehbar wird.

 

Zuletzt geändert von BeRo am 05.05.2014, 22:09, insgesamt 1-mal geändert.

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

ralf-best schrieb am 05.05.2014 um 23:09 Uhr

Hallo BeRo,

wie gewünscht: http://bestcompany-liveband.de/programm.htm

Dort findet sich dann besagte Scrollbar.

Gruß

Ralf

BeRo schrieb am 05.05.2014 um 23:59 Uhr

@ ralf-best

Du hast ein Ebenenproblem

Verschiebe den Platzhalter einfach in eine höhere Ebene und schon klappt's (klick)

Viel Erfolg

----------------

P.S.

Der o. a. Link ist nur temporär gültig. Weil vermutlich kein "öffentliches" Interesse besteht, lösche ich die Demo kurzfristig wieder vom Server...

Zuletzt geändert von BeRo am 06.05.2014, 09:26, insgesamt 2-mal geändert.

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

ralf-best schrieb am 06.05.2014 um 20:02 Uhr

Hallo BeRo,

danke, das mit der Ebene war die Lösung. Hätte man auch selbst drauf kommen können... Aber jetzt funktionierts!!

Jetzt habe ich aber doch noch eine Frage: Die Scrollbar habe ich installiert, bin auch mit der Anleitung zum html-code klargekommen. Wie kann ich denn die Schriftgröße wie im WD in px eingeben, statt mit den Größenbezeichnungen 1 bis 4? Meine Standardschrift auf meiner Website sind 14px. Das liegt so zwischen size 2-3. Ich hatte schon probiert px einzugeben, aber das hat nicht funktioniert. Auf der von Dir empfohlenen Seite gab es leider dazu keine Erklärung. Vielleicht noch ein Tipp dazu?

Gruß

Ralf

BeRo schrieb am 07.05.2014 um 00:01 Uhr

@ ralf-best

[...] Wie kann ich denn die Schriftgröße wie im WD in px eingeben [...]

Dazu musst Du noch ein paar Zeilen CSS einfügen...

Der neue Code gehört in die DIV Box, gewnauer gesagt, muss er nach den beiden ersten Zeilen der DIV Box eingefügt werden.
Die mit CSS eingestellten Parameter gelten dann für den gesamten Inhalt der DIV Box.

So kann das aussehen:

----------------------------------
[...]
<div style="position: absolute; left: 62px; top: 172px; width: 445px; height: 591px; overflow: hidden;">
<div id="div1" style="width:400px; height:510px; overflow:auto">
<style type="text/css">
body {
    font-size: 14px;
    line-height: 150%;
    }
</style>
<b>divBox Inhalt</b>

[...]
--------------------------------

Oben gelb markiert sind die neu einzufügenden Zeilen. Die fett markierten Werte kannst Du nach Deinen Vorgaben anpassen.

Hier findest Du noch mehr Infos zu dem Thema.

Viel Erfolg

Zuletzt geändert von BeRo am 07.05.2014, 00:02, insgesamt 2-mal geändert.

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓