Hej! Hej Lars Hej och tack för svaret! Hej Lars Hej Peter och tack för ditt engagemang! har inget med ämnet att göra men.. noterade att du i alla hörn på sidan (de rundade) har lite gul extragrafik.. (gäller de mindre hörnen runt menyn och innehållet på sidan)Läge på scrollen
Finns det något sätt att få fram scrolläget för att efter en uppdatering av
sidan kunna autoscrolla till samma läge?
Jag har en kalender skriven i php med rubrikerna som länkar. Klickar man på en rubrik
så öppnas meddelandet under rubriken när sidan laddas om. Jag använder just nu ankare
för att komma till rätt meddelande. Detta är inte optimalt eftersom meddelandet då hamnar
överst i webbläsaren.
Det jag vill åstadkomma är att man med t.ex. JS kommer ihåg var scrollen stod när man
klickade på rubriken.
/LarsSv: Läge på scrollen
Du kan använda dig av attributen:
document.body.scrollLeft;
document.body.scrollTop;
Fungerar både i "FireFox" och "Internet Explorer".
Hur det är med andra webbläsare vet jag inte.
/ Peter
Sv:Läge på scrollen
Jag kan ingenting om JS. Hur skulle ett script kunna se ut. Man ska ju först hämta läget på scrollen
och spara detta någonstans (variabel?).
Sen efter klicket på rubriken ska man ju hämta variabelvärdet och autoscrolla dit.
Resonerar jag rätt?
Återigen, jag kan inget om JS.
Tacksam för hjälp med scriptet.
/LarsSv: Läge på scrollen
Om jag förstått det rätt så har du nu följande:
<code>
1. Du står i sidan "kalender.php".
2. Du klickar på en rubrik.
3. "kalender.php" laddas om
4. Under klickad rubrik visas information.
</code>
Du vill alltså efter klick (efter omladdning av "kalender.php"), scrolla ner till samma position som före klickningen?
Jag antar att du skickar med ett slags rubrik-ID till "kalender.php"'s querystring.
Något liknande kan du isf göra med scroll-värdena:
Innan du aktiverar omladdning av sidan, kan du göra:
<code>
1. Hämta scroll-värdena.
2. Lägg på dem som namn-värde par i querystringen.
3. "Aktivera" klicket.
</code>
<b>Exempel</b>:
<html>
<head>
<script language="javascript">
function scrollToPosition() {
<?php
if(isset($_GET["scrollX"]) && isset($_GET["scrollY"])) {
print("document.body.scrollLeft = " . $_GET["scrollX"] . ";");
print("document.body.scrollTop = " . $_GET["scrollY"] . ";");
}
?>
}
function openTopic(topicID) {
var scrollX = document.body.scrollLeft;
var scrollY = document.body.scrollTop;
document.location.href = "kalender.php?topicID=" + topicID + "&scrollX=" + scrollX + "&scrollY=" + scrollY;
}
</script>
</head>
<body onload="scrollToPosition()">
<?php
for($i=0; $i<100; $i++) {
print("Rubrik " . $i . "<br>");
if(isset($_GET["topicID"]) && $i == $_GET["topicID"])
print(" " . $i . " clicked!<br>");
}
?>
</body>
</html>
Ett annat alternativ du kan använda är AJAX.
Men kan vara lite klurigt då du säger att du inte är så insatt i JavaScript.
/ Peter
Sv:Läge på scrollen
Jag får nästan dåligt samvete när jag säger att jag har hittat ett annat script som jag tänker
använda. Som plåster på såren får du länken till scriptet så att även du kan använda det.
http://www.phpportalen.net/viewtopic.php?p=418113#418113
Jag har testat det och det fungerar alldeles utmärkt.
Du kan kolla in
http://www.balingebik.se/kalender_ungdomar.php
Testa att rulla ner och klicka på en rubrik.
Med vänlig hälsning
Lars LantzSv:Läge på scrollen