Zum Inhalt springen

AAA vergrössern/verkleinern

Erstellt am 26. Januar 2009 · 9 Antworten · letzte Antwort am 31. Januar 2009

Tags: Frage

Vitrea ·

Hallo,
In welchem Zusammenhag soll das den verwendet werden: im normalen Content, im Menü oder in einem Extensionabhängigen Bereich?
Davon hängt nämlich der Lösungsweg ab.

Gruß Eva

typo3_forumusr ·

Hallo

Danke für die Antwort!

Den Content sollte man zoomen können.
Wenn man auf den kleinen A klickt, dann sollte der Text verkleinert werden, und beim grossen A sollte der Text vergrössert werden. 😢

Gruss :-)

Michaelh74 ·

Der beste Weg ist über ein Menü ähnlich wie dem Sprachmenü. Es wird also einfach ein Parameter z.B. &font=2 an die URL gehängt.

Über eine Condition bindest Du dann jeweils das CSS mit der entsprechenden Schriftgröße ein.

Gruß
Michael

typo3_forumusr ·

@Michaelh74

Hmm... wie geht das denn? 😃

Beim Sprachwechel fügen wie ja diesen Code ein:

[globalVar = GP:L=5]
   config.sys_language_uid = 5
   config.language = de
   config.locale_all = de_DE
[global]

Über eine Condition bindest Du dann jeweils das CSS mit der entsprechenden Schriftgröße ein.

Wie geht das? O_o[/quote]

typo3_forumusr ·

Also.. diese Seite hat mir nicht weitergeholfen, da ich diesen Script nicht mal herunterladen konnte hehe...

Also ich hab so eine Lösung gefunden:

Die JavaScript Datei:

var bodyElement = null;

// Default Groesse
var defaultSize = 90;

// Groessenaenderung in Prozent
var sizeIncrement = 10;

// aktuelle Groesse
var bodySize = defaultSize;

// Initialisierung der Groesse
function initFont(initSize)
{
if (document.getElementsByTagName('body') != null && initSize != null)
{
bodyElement = document.getElementsByTagName('body')[0];
if (bodyElement == null)
{
bodyElement = document.body;
}
defaultSize = initSize;
sizeIncrement = 10;
bodySize = defaultSize;
setFontSize(bodySize);
}
}

// Groesse aendern
function setFontSize (size)
{
if (bodyElement != null && size != null)
{
content.style.fontSize = size + '%';
}
}

// Groesse verkleinern
function sizeSmaler()
{
bodySize -= sizeIncrement;
setFontSize(bodySize);
}

// Groesse vergroessern
function sizeBigger()
{
bodySize += sizeIncrement;
setFontSize(bodySize);
}

// Groesse zur�ksetzen
function sizeReset()
{
bodySize = defaultSize;
setFontSize(bodySize);
}

Und in die HTML-Datei diesen Code (wenn ich Lokal probiere):

Der BODY-Tag:

<body onload="initFont(90);">

In Typo3:

page.bodyTagAdd = onload="initFont(90);"

In die HTML-Datei:

    <input type="image" src="zoomOut.jpg" onclick="sizeSmaler(); return false;" href="#"></input>
    <input type="image" src="normal.jpg" onclick="sizeReset(); return false;" href="#"></input>
    <input type="image" src="zoomIN.jpg" onclick="sizeBigger(); return false;" href="#"></input>

<div id="content">

text ...

</div>

Jetzt ist das Problem nur, in Typo3 funktioniert dass nicht,,
Obwohl DOCTYPE richtig eingestellt ist...

Im Quelltext stimmt das alles..
Wenn ich den ganzen Quelltext welches Typo3 generiert hat, Lokal probiere,, funktioniert es ....
Einfach nicht in Typo3 :-O
😢

Michaelh74 ·

Die JS Lösung ist nicht ideal, da ja auch nicht barrierefrei.

Ebenso ein Problem dieser Lösung ist, dass in der Regel die Schriftgröße nicht über die aktuelle Seite hinaus greift - sprich die Einstellung geht verloren sobald man von einer Seite zur anderen wechselt.

Der von Dir gezeigt TS Schnippsel hat nichts mit dem Sprach-Menü zu tun.
Schau Dir in der Tsref den Part für typolink an!
Du erzeugst im Grunde eine typolink und hängst den Parameter &font=2 etc. mit dran.

Gruß
Michael

Oliver_S ·

es gibt eine möglichkeit per <body style="zoom:XX"> die gesamte Seite zu zoomen. Dort wurde dann der derzeitige Zoomfaktor in einem Cookie gespeichert um bei einem erneuten Seitenaufruf die richtige größe zu behalten.
Allerdings weiß ich nicht ob dieser style="zoom" immer und überall funktioniert.

ich habe so ein JS in zusammen hang mit einer T3 Seite gesehn, leider weiß ich nicht mehr genau wo das war und wo es das JS gab.

aber vllt hilft dir das trotzdem irgendwie weiter