Du bist nicht angemeldet.

41

Montag, 9. Januar 2017, 20:34

Nochmals lieben herzlichen Dank sempervivum!!!

Einfach traumhaft! Es läuft! Ich hatte mir auch schon gedacht, das hier Java bzw. jquery das Mittel der Wahl ist ;)

Sehr gelungenes Design!


Auch dafür ein großes Danke!

-----

Da ich ja nun nicht der Crack bin, bin ich natürlich bei bestimmten Sachen/Dingen sehr unsicher. Ich habe bereits diese Zeile im Header...

HTML

1
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>


Sie weißt Unterschiede zu Deiner Zeile auf. Muss ich dennoch Deine Zeile mit in den Header aufnehmen?

Also ich habe Deine Zeile jetzt nicht in den Header geschrieben und das Script läuft trotzdem.

-----

Ich habe bereits ein Java-Script global für alle Seiten laufen (für das Menu) und dazu dieses in eine seperate *.js-Datei in einem Ordner auf dem Server liegen. Alle meine Homepage-Seiten greifen durch eine Anweisung im Header darauf zu.

Kann ich das mit Deinem Script jetzt auch machen? Es in die *.js-Datei schreiben und dann einen Bezug vor dem </body> setzen? Wenn das möglich ist, wie realisiere ich das?

Danke!
_____________________________

Viele Grüße aus dem hohen Norden!
Skogtroll

42

Montag, 9. Januar 2017, 23:24

Was das Einbinden von jQuery betrifft: Wenn Du diese Zeile schon hast, solltest Du jQuery nicht ein zweites Mal einbinden.

Natürlich kannst Du das Javascript in eine Datei einziehen und auf allen Seiten verwenden. Du musst jedoch bedenken, dass es nur bei einem Neuladen der gleichen Seite funktioniert. Wenn Du eine neue Seite lädst, wird die Scrollposition der vorigen Seite eingestellt und das ist ja sicher nicht das, was Du willst. Man kann das aber ändern, indem man die URL der Seite in den Item-Namen mit aufnimmt, etwa so:

Javascript-Quelltext

1
window.localStorage.setItem("scrollLeft-" + window.location.pathname, $(window).scrollLeft());

43

Dienstag, 10. Januar 2017, 21:19

...danke nochmals Sempervivum!

Wenn ich das kleine Script global in meine *.js-Datei setze, was muss ich dann vor dem Ende </body> genau für einen Bezug setzen, damit das Script "da wirkt"?

Und würde das Script dann so aussehen?

Javascript-Quelltext

1
2
3
4
5
6
7
window.addEventListener("beforeunload", function () {
  window.localStorage.setItem("scrollLeft-" + window.location.pathname, $(window).scrollLeft());
  window.localStorage.setItem("scrollTop-" + window.location.pathname, $(window).scrollTop());});
  var leftPos = window.localStorage.getItem("scrollLeft");
  var topPos = window.localStorage.getItem("scrollTop");
  $(window).scrollLeft(leftPos);
  $(window).scrollTop(topPos);


Ich bin in/bei solchen Sachen nicht so versiert wie Du :D

Danke Dir!
_____________________________

Viele Grüße aus dem hohen Norden!
Skogtroll

44

Dienstag, 10. Januar 2017, 21:32

Ganz korrekt ist dein Entwurf noch nicht, es muss so aussehen:

Javascript-Quelltext

1
2
3
4
5
6
            window.addEventListener("beforeunload", function () {                window.localStorage.setItem("scrollLeft" + window.location.pathname, $(window).scrollLeft());
                window.localStorage.setItem("scrollTop" + window.location.pathname, $(window).scrollTop());
            });
            var leftPos = window.localStorage.getItem("scrollLeft" + window.location.pathname);
            var topPos = window.localStorage.getItem("scrollTop" + window.location.pathname);
            $(window).scrollLeft(leftPos);             $(window).scrollTop(topPos);


Wenn Du das in eine Datei, z. B. scrollto.js schreibst, musst Du diese, analog zu jQuery, so einziehen:

HTML

1
<script src="scrollto.js"></script>
ggf. mit Verzeichnis, wenn Du sie in ein Unterverzeichnis legst.

45

Dienstag, 10. Januar 2017, 21:59

Danke nochmals Sempervivum!

Du verstehst mich nicht so ganz - liegt evtl. daran, dass ich mich nicht richtig ausdrücke. Ich bin leider auch nicht so versiert mit den einzelnen Script-Sprachen so wie Du.

Also ich habe bereits eine globale "js01.js"-Datei > diese spreche ich über einen Link im Header an: "<script src="../js/js01.js"></script>"

Ich möchte jetzt Dein js-Script in meine "js01.js"-Datei schreiben. Reicht dann mein Bezug "<script src="../js/js01.js"></script>" im Header? ...oder muss ich noch was vor </body> setzen?

Verstehst Du meine - zugegeben verwirrende - Gedankengänge :D
_____________________________

Viele Grüße aus dem hohen Norden!
Skogtroll

46

Dienstag, 10. Januar 2017, 23:28

Gar nicht verwirrend. Ich hatte es zunächst auch so verstanden, aber dann in meine Testdatei gesehen, die ich früher von dir übernommen hatte und dort keine Skriptdatei gefunden. In deiner endgültigen Seite habe ich es jedoch gefunden. Wenn Du mein Skript in deins übernimmst, das Du im Header einziehst, musst Du es in das document-ready schreiben:

Javascript-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
	$(document).ready(function() {
		$('.menubutton').click(function() {
			$('nav').slideToggle('slow');
		});
                window.addEventListener("beforeunload", function () {
                    window.localStorage.setItem("scrollLeft" + window.location.pathname, $(window).scrollLeft());
                    window.localStorage.setItem("scrollTop" + window.location.pathname, $(window).scrollTop());
                });
                var leftPos = window.localStorage.getItem("scrollLeft" + window.location.pathname);
                var topPos = window.localStorage.getItem("scrollTop" + window.location.pathname);
                $(window).scrollLeft(leftPos);
                  $(window).scrollTop(topPos);	});

47

Mittwoch, 11. Januar 2017, 13:24

Jooo!!! Ist mir jetzt so klar!

Danke Dir! ...eingebunden in die js-Datei läuft es auch vorzüglich!
_____________________________

Viele Grüße aus dem hohen Norden!
Skogtroll