Div nicht nur einmal ausblenden?

…ist eine Skriptsprache, die die Möglichkeiten von HTML stark erweitert. Sie wird eingesetzt, um Internet-Seiten flexibel und interessant gestalten zu können. Beispiel: Formulare mit Berechnungsfunktionen / animierte Schaltflächen oder einfach fallender Schnee. - Fragen - Antworten –Tipps hier hinein...

Moderator: lauras

Beiträge bitte im neuen Forum

Div nicht nur einmal ausblenden?

Beitragvon philipp e. » Sonntag 10. April 2011, 19:56

Hallo,
wie manche wahrscheinlich schon wissen, habe ich eine Funktion in meine Webseite für mein Projekt eingebaut, mit der man einen bestimmten DIV Bereich schließen kann.
Jetzt ist es ein wenig doof, dass man beim Neuladen wieder auf den Button klicken muss.
Kann man das ohne PHP und MySQL lösen?
Hier ist mein bisheriges Skript:
Code: Alles auswählen
<script type="text/javascript">
function window$onload () {
var el = document.getElementById("close");
el.onclick = function () {
document.getElementById("header").style.display="none";
document.getElementById("content").style.padding="100px 20px 20px 20px";   
}
}
window.onload=window$onload;
</script>


Mit freundlichen Grüßen,
Philipp E.
Benutzeravatar
philipp e.
HTML-Acrobat
 
Beiträge: 620
Registriert: Freitag 15. Januar 2010, 16:47

Re: Div nicht nur einmal ausblenden?

Beitragvon Sarkkan » Sonntag 10. April 2011, 20:10

Das geht direkt mit JavaScript über Cookies :D
Müsste ungefähr so aussehen:
Code: Alles auswählen
function window$onload () {
    var el = document.getElementById("close");
   
    // Wenn der Cookie existiert
    if(document.cookie){
        // Element ausblenden
        document.getElementById("header").style.display="none";
        document.getElementById("content").style.padding="100px 20px 20px 20px";
    } else {
        // Ansonsten verteile das onclick-Event   
        el.onclick = function () {
            document.getElementById("header").style.display="none";
            document.getElementById("content").style.padding="100px 20px 20px 20px";   
            // Mit der besonderheit, dass n Cookie gesetzt wird:
            var date = new Date();
            date = new Date(a.getTime() + 1000 * 60 * 60 * 24 * 5);
            document.cookie = 'close=true; expires=' + date.toGMTString() + ';';
        }
}
Benutzeravatar
Sarkkan
HTML-Acrobat
 
Beiträge: 1557
Registriert: Montag 5. April 2010, 01:46
Wohnort: Bei Köln

Re: Div nicht nur einmal ausblenden?

Beitragvon philipp e. » Montag 11. April 2011, 16:39

danke ersteinmal für die info dass es geht.
aber irgendwie funktioniert das skript nicht.
es passiert gar nichts mehr, wenn man auf das bild mit der id close klickt!
Benutzeravatar
philipp e.
HTML-Acrobat
 
Beiträge: 620
Registriert: Freitag 15. Januar 2010, 16:47

Re: Div nicht nur einmal ausblenden?

Beitragvon Sarkkan » Montag 11. April 2011, 17:41

Tut mir Leid.. ich habe wohl eine Schließende geschweifte Klammer vergessen <.<

Code: Alles auswählen
window.onload = function (){
    var el = document.getElementById("close");
    // Wenn der Cookie existiert
    if(document.cookie){
        // Element ausblenden
        document.getElementById("header").style.display="none";
        document.getElementById("content").style.padding="100px 20px 20px 20px";
    } else {
        // Ansonsten verteile das onclick-Event
        el.onclick = function () {
            document.getElementById("header").style.display="none";
            document.getElementById("content").style.padding="100px 20px 20px 20px";
            // Mit der besonderheit, dass n Cookie gesetzt wird:
            var date = new Date();
            date = new Date(date.getTime() + 1000 * 60 * 60 * 24 * 5);
            document.cookie = 'close=true; expires=' + date.toGMTString() + ';';
        }
    }
}

So läuft es, habe s getestet (:
Benutzeravatar
Sarkkan
HTML-Acrobat
 
Beiträge: 1557
Registriert: Montag 5. April 2010, 01:46
Wohnort: Bei Köln

Re: Div nicht nur einmal ausblenden?

Beitragvon philipp e. » Montag 11. April 2011, 19:45

danke!
also ich muss schon sagen, bis schon nen profi!

ich könnte ja noch nen schritt weitergehen und dann ein bild einblenden lassen, um das ganze wieder anzeigen zu lassen.
Wie mach ich das?
Ich hab das versucht, aber bei mir geht dann gar nichts mehr!
Benutzeravatar
philipp e.
HTML-Acrobat
 
Beiträge: 620
Registriert: Freitag 15. Januar 2010, 16:47

Re: Div nicht nur einmal ausblenden?

Beitragvon Sarkkan » Dienstag 12. April 2011, 07:11

Ich würde ja nicht einfach den kompletten Div ausblenden.. (By the way: modernes Webdesignen FTW! Tabellenlayout WTF?! [Spielt darauf an, dass du zum anordnen der Elemente eine Tabelle verwendet hast :P Das ginge auch ohne Probleme mit nem Float.. aber egal)

Naja.. lass den <marquee>-Tag doch nur ausblenden und ändere dann einfach das src-Attribut des Bildes.
Dafür empfiehlt es sich denen eine ID zu geben :D Oder du hast Spaß dran dich mit dem JavaScript-Node-System durch mehrere Ebenen zu kämpfen :P
Benutzeravatar
Sarkkan
HTML-Acrobat
 
Beiträge: 1557
Registriert: Montag 5. April 2010, 01:46
Wohnort: Bei Köln

Re: Div nicht nur einmal ausblenden?

Beitragvon philipp e. » Dienstag 12. April 2011, 14:15

also erstens benutze ich keine Tabellen mehr!!!!
Es geht hier um eine ganz andere seite!
Es wird nicht nur eine Newszeile sondern ein ganzer header ausgeblendet, da is besser ein ganzes DIV auszublenden!

Also gehe ich so vor:
Wenn es angecklickt wurde:
1. ausblenden
2. src des bilds ändern
3. id des bilds ändern

Wenn die andere id angecklickt wurde:
1. einblenden

is das richtig?
Benutzeravatar
philipp e.
HTML-Acrobat
 
Beiträge: 620
Registriert: Freitag 15. Januar 2010, 16:47

Re: Div nicht nur einmal ausblenden?

Beitragvon philipp e. » Dienstag 12. April 2011, 14:50

function window$onload () {
var el = document.getElementById("open");
el.onclick = function () {
document.getElementById("header").style.display="block";
}
}
window.onload=window$onload;


window.onload = function (){
var el = document.getElementById("close");
// Wenn der Cookie existiert
if(document.cookie){
// Element ausblenden
document.getElementById("header").style.display="none";
document.getElementById("content").style.padding="100px 20px 20px 20px";
document.getElementById("close").id="open";
document.getElementById("open").src="png/add.png";
document.getElementById("open").title="Kopf öffnen";
} else {
// Ansonsten verteile das onclick-Event
el.onclick = function () {
document.getElementById("header").style.display="none";
document.getElementById("content").style.padding="100px 20px 20px 20px";
// Mit der besonderheit, dass n Cookie gesetzt wird:
var date = new Date();
date = new Date(date.getTime() + 1000 * 60 * 60 * 24 * 5);
document.cookie = 'close=true; expires=' + date.toGMTString() + ';';
document.getElementById("close").Id="open";
document.getElementById("open").src="png/add.png";
document.getElementById("open").title="Kopf öffnen";

}
}
}

Warum klappt das nicht?
Benutzeravatar
philipp e.
HTML-Acrobat
 
Beiträge: 620
Registriert: Freitag 15. Januar 2010, 16:47

Re: Div nicht nur einmal ausblenden?

Beitragvon Sarkkan » Dienstag 12. April 2011, 19:28

Weil du es dir unnötig schwer machst?
Code: Alles auswählen
window.onload = function (){
    
// Wenn der Cookie existiert
    
if(document.cookie != ""){
        
// Element ausblenden
        
$("header").style.display "none";
        $(
"content").style.padding "100px 20px 20px 20px";
    }
    
    
// Beim Anklicken des  Schalters soll Funktion ausgeführt werden:
    
$("switch").onclick = function(){
        
toggleHeader();
    }
}

function $(
id){
    return 
document.getElementById(id);
}

function 
toggleHeader(){
    
// Wenn das Element sichtbar ist
    
if($("header").offsetHeight 0){
        $(
"header").style.display "none";
        $(
"content").style.padding "100px 20px 20px 20px";
        
        
with($("switch")){
            
// Bezieht sich alles auf "switch"
            
src "png/add.png";
            
titel "Header anzeigen";
        }

        
// Und setzte den Cookie
        
var date = new Date();
        
date = new Date(date.getTime() + 1000 60 60 24 5);
        
document.cookie 'close=true; expires=' date.toGMTString() + ';';

    } else {
    
// Wenn der Header nicht zu sehen ist, blende ihn ein
        
$("header").style.display "block";
        $(
"content").style.padding "20px";

        
with($("switch")){
            
// Bezieht sich alles auf "switch"
            
src "png/add.png";
            
titel "Header verstecken";
        }

        
// Und lösche den Cookie, indem wir ihm einen veralteten Wert geben
        
document.cookie 'close=false; expires=Thu, 01-Jan-70 00:00:01 GMT;';
    }
}
 

Ich habe dem Ding einfach die ID "switch" gegeben.. weil ich damit etwas hin und her schalte :P
Dann lasse ich überprüfen, ob der Cookie existiert, wenn ja soll der Header ausgeblendet werden.
Und gebe dem Switch immer ein und die selbe Funktion.. die beim klicken dann entscheidet, was gemacht werden soll.
Benutzeravatar
Sarkkan
HTML-Acrobat
 
Beiträge: 1557
Registriert: Montag 5. April 2010, 01:46
Wohnort: Bei Köln

Re: Div nicht nur einmal ausblenden?

Beitragvon philipp e. » Dienstag 12. April 2011, 19:43

klappt aber irgendwie nicht.
es passiert wieder nichts.
ID hab ich natürlich geändert.
Benutzeravatar
philipp e.
HTML-Acrobat
 
Beiträge: 620
Registriert: Freitag 15. Januar 2010, 16:47

Re: Div nicht nur einmal ausblenden?

Beitragvon Sarkkan » Dienstag 12. April 2011, 19:48

Die Fehlerkonsole ist schon was tolles... -.-

Also bei mir klappt alles ohne Probleme.. hast du auch wirklich alle ID's richtig umgeändert??

Den hier klappt alles: Test-Suit
Benutzeravatar
Sarkkan
HTML-Acrobat
 
Beiträge: 1557
Registriert: Montag 5. April 2010, 01:46
Wohnort: Bei Köln

Re: Div nicht nur einmal ausblenden?

Beitragvon philipp e. » Dienstag 12. April 2011, 19:51

es gibt ein problem mit toggle...
das funzt nicht.
außerdem klappt das mit dem cookie auch nicht so ganz.
Benutzeravatar
philipp e.
HTML-Acrobat
 
Beiträge: 620
Registriert: Freitag 15. Januar 2010, 16:47

Re: Div nicht nur einmal ausblenden?

Beitragvon philipp e. » Dienstag 12. April 2011, 19:58

ach quatsch.
Wenn man die Seite neu lädt.
is zwar das ding ausgeblendet aber das falsche Bild!
wenn header ausgeblendet ist, dann kommt das bild, welches zum ausblenden gedacht ist.

An der stelle wo das zweite mal eigenschaften fürs bild erstellt werden hab ichs geändert, geht aber noch net, weil das ja mit dem cookie zu tun hat.
Benutzeravatar
philipp e.
HTML-Acrobat
 
Beiträge: 620
Registriert: Freitag 15. Januar 2010, 16:47

Re: Div nicht nur einmal ausblenden?

Beitragvon philipp e. » Dienstag 12. April 2011, 20:07

Problem alleine gelöst!
Javascript ist eigentlich eine ganz einfache Sprache!
Benutzeravatar
philipp e.
HTML-Acrobat
 
Beiträge: 620
Registriert: Freitag 15. Januar 2010, 16:47


Beiträge bitte im neuen Forum

Zurück zu JavaScript

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron