webForumDet fria alternativet

Hjälp med visa/dölj lager script.

16 svar · 1 016 visningar · startad av SimOnline

SimOnlineMedlem sedan juli 20031 132 inlägg
#1

Hallojsan!

Jag hittade ett javascript för att visa/dölja ett lager här på wF.

Detta ligger innanför <head></head>:

<script language="JavaScript" type="text/javascript">
function visa(layer) {
	if(layer.style.visibility=='hidden'){
		layer.style.visibility='visible';
	} else {
		layer.style.visibility='hidden';
	}
}
</script>

Och så här ser länken ut:

<a href="#" onclick="visa(document.getElementById('archive'))">arkiv</a>

Och här har vi lagret ifråga:

<div id="archive">
<h1>Arkivet</h1>
<ul>
<?php get_archives('monthly', '', 'html', '', '', TRUE); ?>
</ul><span style="float:right; padding:10px; padding-bottom:5px;padding-top: 0; margin:0;">
<a href="#" onclick="visa(document.getElementById('archive'))">Stäng</a>
</span></div>

Problemet är att lagret aldrig visar sig på första klicket, vilket är lite störande. Man måste alltså först klicka en gång, då händer det ingenting. Sen när man klickar igen, då funkar det.

Kolla in exemplet på http://www.simonlog.com, arkiv-länken i menyn.

Tack på förhand!

icaaqMedlem sedan okt. 20005 273 inlägg
#2
<div id="archive"[b] style="visibility: hidden;"[/b]>
<h1>Arkivet</h1>
<ul>
<?php get_archives('monthly', '', 'html', '', '', TRUE); ?>
</ul><span style="float:right; padding:10px; padding-bottom:5px;padding-top: 0; margin:0;">
<a href="#" onclick="visa(document.getElementById('archive'))">Stäng</a>
</span></div>

mv icaaq

SimOnlineMedlem sedan juli 20031 132 inlägg
#3

Ah, tack tack! :bire

silfverMedlem sedan apr. 200312 679 inlägg
#4

Jag tycker det är synd att lagret försvinner när man byter sida. Kan man inte lagra det med en kaka eller nåt? :) Finns ju javascriptkakor?

SimOnlineMedlem sedan juli 20031 132 inlägg
#5

silfver skrev:

Jag tycker det är synd att lagret försvinner när man byter sida. Kan man inte lagra det med en kaka eller nåt? :) Finns ju javascriptkakor?

Vadå, menar du att det helt enkelt ska vara där jämt? Problemet är väl att när det blir fler månader i arkivet så kommer det ju täcka delar av menyn och resten av sidan.

silfverMedlem sedan apr. 200312 679 inlägg
#6

SimOnline skrev:

silfver skrev:

Jag tycker det är synd att lagret försvinner när man byter sida. Kan man inte lagra det med en kaka eller nåt? :) Finns ju javascriptkakor?

Vadå, menar du att det helt enkelt ska vara där jämt? Problemet är väl att när det blir fler månader i arkivet så kommer det ju täcka delar av menyn och resten av sidan.

Nej, jag menar att om man väljer att lagret ska visas så ska det ligga kvar tills man stänger det - även om man byter sida. :) Förstår du vad jag menar? Nu försvinner det ju så fort man uppdaterar sidan.

SimOnlineMedlem sedan juli 20031 132 inlägg
#7

silfver skrev:

SimOnline skrev:

silfver skrev:

Jag tycker det är synd att lagret försvinner när man byter sida. Kan man inte lagra det med en kaka eller nåt? :) Finns ju javascriptkakor?

Vadå, menar du att det helt enkelt ska vara där jämt? Problemet är väl att när det blir fler månader i arkivet så kommer det ju täcka delar av menyn och resten av sidan.

Nej, jag menar att om man väljer att lagret ska visas så ska det ligga kvar tills man stänger det - även om man byter sida. :) Förstår du vad jag menar? Nu försvinner det ju så fort man uppdaterar sidan.

Jo iofs. Det vore en ganska bra idé egentligen :) Men... Hur gör man det då? :r

silfverMedlem sedan apr. 200312 679 inlägg
#8

SimOnline skrev:

Jo iofs. Det vore en ganska bra idé egentligen :) Men... Hur gör man det då? :r

Gissningsvis så borde man kunna skapa en kaka av hela funktionen. Det är dock något jag verkligen inte kan. Men en vänlig själ här på forumet kanske kan hjälpa dig. :)

function createCookie

Så långt kan jag. :OO :e

Peter SMedlem sedan dec. 20025 483 inlägg
#9
<script type="text/javascript">

function cc(c){
    document.cookie = c + "=1; path=/;";
}

function ce(c){
    return document.cookie.indexOf(c) != -1;
}

function ec(c){
    document.cookie = c + "=1; expires=Tue, 1 Jan 1980 00:00:00 GMT; path=/;"
}

function visa(layer) {
	if(layer.style.visibility=='hidden'){
		layer.style.visibility='visible';

		if (!ce("simonlog")){
			cc("simonlog");
		}
	} else {
		layer.style.visibility='hidden';

		ec("simonlog");
	}
}

window.onload = function(){
    if(ce("simonlog")){
	visa(document.getElementById("archive"));
    }
}

</script>
SimOnlineMedlem sedan juli 20031 132 inlägg
#10

Tusen tack Peter S! Funkar ju strålande :D Önskar jag kunde sätta två st slutgiltiga svar, men icaaq var ju trots allt den som besvarade ursprungsfrågan, så jag behåller det så.

SimOnlineMedlem sedan juli 20031 132 inlägg
#11

Nej men nu strular det igen, vad är det som har hänt? x(

Just när jag hade satt in koden som Peter S skrev, då funkade det ju utmärkt, men nu verkar arkiv-rutan dyka upp så fort jag går in på sidan, varför?

silfverMedlem sedan apr. 200312 679 inlägg
#12

SimOnline skrev:

Nej men nu strular det igen, vad är det som har hänt? x(

Just när jag hade satt in koden som Peter S skrev, då funkade det ju utmärkt, men nu verkar arkiv-rutan dyka upp så fort jag går in på sidan, varför?

För att du har kakan sparad? :p

SimOnlineMedlem sedan juli 20031 132 inlägg
#13

silfver skrev:

SimOnline skrev:

Nej men nu strular det igen, vad är det som har hänt? x(

Just när jag hade satt in koden som Peter S skrev, då funkade det ju utmärkt, men nu verkar arkiv-rutan dyka upp så fort jag går in på sidan, varför?

För att du har kakan sparad? :p

Hehe, mjo. Men är inte tanken att kakan ska försvinna när jag tryckt på stäng? Trycker jag på stäng, och sedan går till en annan sida och sen tillbaka till min, så är rutan där iaf.

GislavedMedlem sedan nov. 20041 740 inlägg
#14

Kakan sparas så länge du har webbläsaren igång, om du inte säger något annat.

SimOnlineMedlem sedan juli 20031 132 inlägg
#15

Gislaved skrev:

Kakan sparas så länge du har webbläsaren igång, om du inte säger något annat.

Men om jag vill att den ska försvinna när jag trycker på stäng då, hur gör jag då?

Peter SMedlem sedan dec. 20025 483 inlägg
#16

För mig försvinner kakan då jag trycker på "stäng" i arkivrutan. Kan du beskriva ett förfarande som gör att man kan reproducera beteendet?

silfverMedlem sedan apr. 200312 679 inlägg
#17

Peter S skrev:

För mig försvinner kakan då jag trycker på "stäng" i arkivrutan. Kan du beskriva ett förfarande som gör att man kan reproducera beteendet?

Det fungerar för mig också.

När jag använder den här koden så ligger inte mina rubriker intill varann, utan det är utrymme mellan dem reserverat för innehållet som skall fällas ut. Kan man inte få rubrikerna att ligga intill varann som om ingenting låg dolt emellan?

<h3><a href="#" onclick="visa(document.getElementById('categories'))">Kategorier +</a></h3>
<div id="categories" style="visibility: hidden;">
	test
</div>

<h3><a href="#" onclick="visa(document.getElementById('archive'))">Arkiv +</a></h3>
<div id="archive" style="visibility: hidden;">
	test
</div>

Ledsen ifall jag drar upp en gammal tråd....

129 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)