TP Underground Lounge 07/08
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 20.11.2004, 15:15   #1
TP-Veteran
 
Benutzerbild von Terry
 
Registriert seit: Mar 2004
Terry hilft, wo's gehtTerry hilft, wo's gehtTerry hilft, wo's geht

Hilfe Javascript!


Eine Bitte an die Javascriptler - helft mir mal, das kann ich doch nicht...

Ich habe mir folgendes vorgenommen für den Relaunch (und gehörigen Ausbau) meiner Seite:

1. Ein Styleswitcher für verschiedene Styles zur Auswahl
2. eine Möglichkeit, die Schriftgröße auf Knopfdruck zu verstellen.

Für beides finde ich diverse PHP-Lösungen im Netz, die allerdings das Caching kaputt machen und immer ein neues Laden erzwingen. Daher wollte ich es mit Javascript machen.

Für 1. hab ich das hier: http://stichpunkt.de/css/switch.html

HTML-Code:
var Stil = "Standard";
var Keks = "Layout";
var Tage = 30;

// Style Switcher

function switchStyle(s) {
  if (!document.getElementsByTagName) return;
  var el = document.getElementsByTagName("link");
  for (var i = 0; i < el.length; i++ ) {
    if (el[i].getAttribute("rel").indexOf("style") != -1 && el[i].getAttribute("title")) {
      el[i].disabled = true;
      if (el[i].getAttribute("title") == s) el[i].disabled = false;
    }
  }
}

function loadStyle() {
  var c = getStyleCookie();
  if (c && c != Stil) {
    switchStyle(c);
    Stil = c;
  }
}

function setStyle(s) {
  if (s != Stil) {
    switchStyle(s);
    Stil = s;
  }
}

window.onload = loadStyle;


// Cookie-Funktionen

function setCookie(name, value, expdays) {   // gültig expdays Tage
  var now = new Date();
  var exp = new Date(now.getTime() + (1000*60*60*24*expdays));
  document.cookie = name + "=" + escape(value) + ";" +
                    "expires=" + exp.toGMTString() + ";" +
                    "path=/";
}

function delCookie(name) {   // expires ist abgelaufen
  var now = new Date();
  var exp = new Date(now.getTime() - 1);
  document.cookie = name + "=;" +
                    "expires=" + exp.toGMTString() + ";" + 
                    "path=/";
}

function getCookie(name) {
  var cname = name + "=";
  var dc = document.cookie;
  if (dc.length > 0) {
    var start = dc.indexOf(cname);
    if (start != -1) {
      start += cname.length;
      var stop = dc.indexOf(";", start);
      if (stop == -1) stop = dc.length;
      return unescape(dc.substring(start,stop));
    }
  }
  return null;
}

function setStyleCookie() {
  setCookie(Keks, Stil, Tage);
}

function getStyleCookie() {
  return getCookie(Keks);
}

function delStyleCookie() {
  delCookie(Keks);
}
Frage: Wie ändere ich das so um, dass gleich ein Cookie gesetzt wird ohne extra Klick? Sonst ändert sich ja immer nur die aktuelle Seite und nicht die anderen.

Für 2. such ich noch was. Zwar ist meine Schriftgröße eh relativ in % und em angegeben, aber ich wollte zusätzlich noch eine Möglichkeit anbieten für diejenigen, die nicht wissen, wie man das im Browser verstellt.
Ich muß also auf Knopfdruck noch ein zusätzliches Stylesheet einbinden können, ohne die anderen dabei zu verändern - wie geht das?
__________________
Grüße, Terry
Terry ist offline   Mit Zitat antworten


Alt 20.11.2004, 16:53   #2
TP-Special Mod
 
Benutzerbild von webmichl
 
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
webmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine User
Zu 1:
Na ja, so auf die Schnelle würde ich vorschlagen, die function, die beim Button-Klick gestartet wird ( setStyleCookie() ) an das Ende der Switch-function zu setzen:

Code:
function setStyle(s) {
  if (s != Stil) {
    switchStyle(s);
    Stil = s;
    setStyleCookie();
  }
}
Zu 2: keine Ahnung im Moment...
__________________

webmichl ist offline   Mit Zitat antworten
Alt 20.11.2004, 17:02   #3
TP-Veteran
 
Benutzerbild von Terry
 
Registriert seit: Mar 2004
Terry hilft, wo's gehtTerry hilft, wo's gehtTerry hilft, wo's geht
Nr. 1 funktioniert prima! Vielen Dank!
__________________
Grüße, Terry
Terry ist offline   Mit Zitat antworten
Alt 20.11.2004, 22:39   #4
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Zu 2.:

Zitat:
Ich muß also auf Knopfdruck noch ein zusätzliches Stylesheet einbinden können, ohne die anderen dabei zu verändern - wie geht das?
Änder doch statt dessen einfach die oberste Schriftgrößen-Angabe. Ich hatte dafür mal folgende ganz simple JS-Funktion geschrieben. Sie erlaubt die Vergrößerung bzw. Verkleinerung der Schrift bis zu zwei Stufen in beide Richtungen um je 15%:

HTML-Code:
fontsize_base = 83;
fontsize_add = 0;


function change_font_size(change)
{
    if (Math.abs(fontsize_add + change) < 3)
    {
        if(change == 0)
        {
            document.body.style.fontSize = fontsize_base + '%';
            fontsize_add = 0;
        }
        else
        {
            fontsize_add += change;
            document.body.style.fontSize = fontsize_base + fontsize_add * 15 + '%';
        }
        
        document.cookie = 'fontsize_add=' + fontsize_add + ';path=/';
    }
}
Für fontsize_base musst Du den Prozentwert angeben, den Du für die Schriftgröße im CSS gewählt hast. Fontsize_add muss auch ausserhalb der Funktion schonmal definiert sein, damit die Variable als global eingerichtet wird.
Die Funktion speichert die Einstellung nicht, d.h. die Schriftgrößenänderung muss nach jedem Seitenaufruf neu eingestellt werden. Wie gesagt, wirklich ganz primitiv...


Und für 1. würd ich ja auf PHP setzen, so wie csszengarden.com...allerdings ist das wohl Geschmacksache, meine Argumente wären nicht besonders stark. Daher verzicht ich mal auf womöglich überflüssige Überzeugungsarbeit .
seb ist offline   Mit Zitat antworten
Alt 21.11.2004, 00:16   #5
TP-Veteran
 
Benutzerbild von Terry
 
Registriert seit: Mar 2004
Terry hilft, wo's gehtTerry hilft, wo's gehtTerry hilft, wo's geht
Zitat:
Zitat von seb
Zu 2.:
Änder doch statt dessen einfach die oberste Schriftgrößen-Angabe.
Ja, mehr brauch ich auch nicht. Im body sind normalerweise 100.01% gesetzt, das wird dann in den Inhaltscontainern noch leicht runterskaliert..

Wenn man das also einfach auf 120% und 150% oder ähnliches hochsetzen könnte, dann reicht das eigentlich. (115 und 130 sind auch gut).



Zitat:
Fontsize_add muss auch ausserhalb der Funktion schonmal definiert sein, damit die Variable als global eingerichtet wird.
Wo und wie?
In Javascript bin ich echt NOOB. Und wie genau rufe ich die Funktion überhaupt auf?
Zitat:
Die Funktion speichert die Einstellung nicht, d.h. die Schriftgrößenänderung muss nach jedem Seitenaufruf neu eingestellt werden. Wie gesagt, wirklich ganz primitiv...
Das ist schlecht. Die sollte schon gespeichert werden. So nützt es nix.


Zitat:
Und für 1. würd ich ja auf PHP setzen, so wie csszengarden.com...allerdings ist das wohl Geschmacksache, meine Argumente wären nicht besonders stark. Daher verzicht ich mal auf womöglich überflüssige Überzeugungsarbeit .
Ich fand das mit PHP ja auch gut - aber jemand, von dessen Meinung ich sehr viel halte, hielt davon gar nichts - eben, weil die Seiten dann nicht mehr gecacht werden können - ging da um ein Script für Problem2 - aber das gilt wohl genauso auch für 1, oder?
Hier das Script zur Schriftveränderung: http://www.lingo4u.de/article/fontsize/
__________________
Grüße, Terry
Terry ist offline   Mit Zitat antworten
Alt 21.11.2004, 10:23   #6
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Zitat:
Das ist schlecht. Die sollte schon gespeichert werden. So nützt es nix.
Ich hatte versucht, die Einstellung per Cookie zu speichern. Als es mir aber nach einigem Probieren nicht richtig gelungen ist, hab ichs erstmal aufgegeben -> der Ober-Crack bin ich in JS auch nicht grad.

Zitat:
eben, weil die Seiten dann nicht mehr gecacht werden können
Ich versteh nicht, wieso die Seiten dann nicht mehr "gecachet" (scheiß denglisch ) werden können sollten.
Hebt ein Browser die Ausgaben von PHP-Scripts nicht im Cache auf, weil er davon ausgeht, dass sie sich eher ändern als statische Seiten? Kriegt er überhaupt mit, auf welche Art und Weise das Dokument auf dem Server erzeugt wurde? Und wenn ja, kann man das nicht leicht überlisten?
seb ist offline   Mit Zitat antworten
Alt 21.11.2004, 10:33   #7
TP-Veteran
 
Benutzerbild von Terry
 
Registriert seit: Mar 2004
Terry hilft, wo's gehtTerry hilft, wo's gehtTerry hilft, wo's geht
Zitat:
Zitat von seb
Ich hatte versucht, die Einstellung per Cookie zu speichern. Als es mir aber nach einigem Probieren nicht richtig gelungen ist, hab ichs erstmal aufgegeben -> der Ober-Crack bin ich in JS auch nicht grad.
O.k. - scheint schwieriger zu sein, als ich hoffte - ich glaube, ich werde es lassen...
Hab aber gestern noch einen Artikel von ALA gefunden, vielleicht werde ich ja da noch schlauer: http://www.alistapart.com/articles/bodyswitchers/
Muß ich noch mal in Ruhe analysieren und testen...

Zitat:
Hebt ein Browser die Ausgaben von PHP-Scripts nicht im Cache auf, weil er davon ausgeht, dass sie sich eher ändern als statische Seiten? Kriegt er überhaupt mit, auf welche Art und Weise das Dokument auf dem Server erzeugt wurde? Und wenn ja, kann man das nicht leicht überlisten?
Auch hier habe ich bislang nur Halbwissen. Aber wenn man es gut macht, schickt man im HTTP-Header auch Caching-Anweisungen mit (durch gute Serverkonfiguration oder eben direkt mit PHP).
Bei oben genanntem Script wird jegliches Zwischenspeichern explizit verhindert, weil es sonst nicht funktioniert. Das führt aber zu
- höherer Serverbelastung
- höherem Trafficverbrauch auf dem Server
- und zu schlechteren Seitenladezeiten, speziell bei Modemusern.

Und das alles nur, damit man durch Klick die Schriftgröße ändern kann statt im Browser? Denn die Schrift ist ja wie gesagt sowieso verstellbar.
__________________
Grüße, Terry
Terry ist offline   Mit Zitat antworten
Alt 21.11.2004, 11:40   #8
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Zitat:
O.k. - scheint schwieriger zu sein, als ich hoffte - ich glaube, ich werde es lassen...
Nee, es kann nicht wirklich schwierig sein. Ich hing an irgendeinem kleinen, aber todnervigen Problem und hatte dann einfach keine Lust mehr . Wenn man will, kriegt man das garantiert hin.


Und das Ding von AListApart sieht wirklich gut aus...ist ja genau, was Du suchst.
seb ist offline   Mit Zitat antworten
Alt 21.11.2004, 12:24   #9
321
TP-Specialist
 
Benutzerbild von 321
 
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
321 hilft, wo's geht321 hilft, wo's geht321 hilft, wo's geht
ich hab gerade bei Dynamic Drive etwas gesehn:

http://www.dynamicdrive.com/dynamicindex9/textsizer.htm
321 ist offline   Mit Zitat antworten
Alt 21.11.2004, 12:40   #10
TP-Veteran
 
Benutzerbild von Terry
 
Registriert seit: Mar 2004
Terry hilft, wo's gehtTerry hilft, wo's gehtTerry hilft, wo's geht
Danke Dir - der sieht gut aus!

Werde jetzt beide mal testen..

Edit: der von Dynamicdrive läuft ohne Cookies, also immer nur auf der aktuellen Seite - aber der von ALA ist gut und das bleibt auch beim Seitenumblättern erhalten (da mit Cookie).
Prädikat: empfehlenswert!
__________________
Grüße, Terry

Geändert von Terry (21.11.2004 um 13:21 Uhr).
Terry ist offline   Mit Zitat antworten
Alt 21.11.2004, 13:37   #11
TP-Veteran
 
Benutzerbild von Nele
 
Registriert seit: Jan 2004
Ort: Borntowncity
Nele ist ein richtiges Arbeitstier - DANKENele ist ein richtiges Arbeitstier - DANKENele ist ein richtiges Arbeitstier - DANKENele ist ein richtiges Arbeitstier - DANKENele ist ein richtiges Arbeitstier - DANKENele ist ein richtiges Arbeitstier - DANKE
Hallo Terry,

ich habe hier eine Seite mit einem Javascript gefunden, dass es möglich macht, die Schriftgröße auf allen Seiten zu ändern (mit Cookies).

Leider hat es beim Versuch es einzubauen die Cookies des oben geposteten Styleswitchers außer Kraft gesetzt.

Es wär super, wenn das jemand so verbinden könnte, so dass sowohl die veränderte Schriftgröße als auch der Style erhalten bleibt.
__________________
Meine Makros
Nele ist offline   Mit Zitat antworten
Alt 21.11.2004, 13:46   #12
TP-Veteran
 
Benutzerbild von Terry
 
Registriert seit: Mar 2004
Terry hilft, wo's gehtTerry hilft, wo's gehtTerry hilft, wo's geht
Bei mir geht das jetzt!

Für die verschiedenen Layouts nehme ich Toms Styleswitcher (s. oben) mit Webmichls Änderung.

Zusätzlich den Switcher von ALA, um die Schriftgröße ändern zu können - der nutzt auch Cookies.

Vielleicht ist das ganze nachher so weit, dass ich ne Demo schon mal hochladen kann...
__________________
Grüße, Terry
Terry ist offline   Mit Zitat antworten
Alt 21.11.2004, 13:48   #13
TP-Veteran
 
Benutzerbild von Nele
 
Registriert seit: Jan 2004
Ort: Borntowncity
Nele ist ein richtiges Arbeitstier - DANKENele ist ein richtiges Arbeitstier - DANKENele ist ein richtiges Arbeitstier - DANKENele ist ein richtiges Arbeitstier - DANKENele ist ein richtiges Arbeitstier - DANKENele ist ein richtiges Arbeitstier - DANKE
Super!

Ich bin gespannt.
__________________
Meine Makros
Nele ist offline   Mit Zitat antworten
Alt 21.11.2004, 14:37   #14
TP-Veteran
 
Benutzerbild von Terry
 
Registriert seit: Mar 2004
Terry hilft, wo's gehtTerry hilft, wo's gehtTerry hilft, wo's geht
So, nur ne kleine Demo: http://homepage.terrikay.de

Beim Alternativ-Layout passt natürlich vorn und hinten noch nichts - ich hab nur schnell was zusammengefummelt... - geht jetzt erstmal nur um die Technik.

Auch das grüne Start-Layout ist noch nicht fertig, aber da stimmt zumindest mal die Richtung...
Anklickbar sind: Hauptpunkte Startseite und Webdesign sowie sämtliche Unterpunkte der beiden Rubriken.
__________________
Grüße, Terry
Terry ist offline   Mit Zitat antworten
Alt 21.11.2004, 15:21   #15
TP-Veteran
 
Benutzerbild von Nele
 
Registriert seit: Jan 2004
Ort: Borntowncity
Nele ist ein richtiges Arbeitstier - DANKENele ist ein richtiges Arbeitstier - DANKENele ist ein richtiges Arbeitstier - DANKENele ist ein richtiges Arbeitstier - DANKENele ist ein richtiges Arbeitstier - DANKENele ist ein richtiges Arbeitstier - DANKE
Klasse !!!

Aber ich hätte es ja noch lieber, wenn man die Schriftgröße schrittweise vergrößern und verkleinern könnte, so wie ich es hier gemacht habe.
Ich würde es auch besser finden, wenn man dafür kein select-Feld bräuchte.

Kann das hier denn wirklich niemand ???
__________________
Meine Makros
Nele ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > HTML Puristen > Javascript
Hilfe Javascript! Hilfe Javascript!
« Browserproblem Safari (Musik und Javascript) | [JavaScript] Popup problem mit Firefox »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hilfe zu Javascript Beispiel twietys Javascript 3 27.10.2004 17:36
JavaScript Error MX/2004 Hilfe Juli Dreamweaver 4 14.09.2003 01:47
Brauche Hilfe beim Javascript einbinden! Fexxx Dreamweaver 2 07.08.2003 07:48
Hilfe ! Problem mit javascript positionierung ! Bitte um Hilfe ! Drumatical Javascript 2 12.06.2002 14:13
Hilfe! Javascript Rollover aus Fireworks timbo Fireworks 2 18.04.2002 16:20


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:31 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |