• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] JS-Fkt zeitgesteuert

pille0815

New member
hallo,
ich habe folgende js-funktion zum scrollen:
Code:
<script>
	$(function() {
	  $('a[href*=#]:not([href=#])').click(function() {
	    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {

	      var target = $(this.hash);
	      target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
	      if (target.length) {
	        $('html,body').animate({
	          scrollTop: target.offset().top
	        }, 1000);
	        return false;
	      }
	    }
	  });
	});
</script>

funktioniert auch prima per:

HTML:
<body>
...
<a href="#down" name="runter" onclick="click()">runter</a>
<a id="contentx" name="contentx"></a>
...
<a  id="down" name="down"></a>
<a href="#contentx" name="hoch" onclick="click()">hoch</a>
...
</body>

ich möchte jetzt wenigstens das runter scrollen zeitgesteuert auslösen.
wie muss ich den Kopf der function ändern? (also ohne <a> Tag)
welche Bedeutung hat das $ vor function?
(hatte noch nicht so viel mit js zu tun!)
kann ich das Sprungziel (target) übergeben?
dann wären ja beide Richtungen möglich!
Danke!

Gruß Christoff
 
Zuletzt bearbeitet:
welche Bedeutung hat das $ vor function?

Das sieht aus wie die Kurzform von der document.ready-Funktio (jQuery)
Code:
$( document ).ready(function() {
console.log( "ready!" );
});
kann ich das Sprungziel (target) übergeben?
dann wären ja beide Richtungen möglich!
Das Sprungziel wird doch im href-Attribut festgelegt
HTML:
<a href="#down" name="runter" onclick="click()">runter</a>
ich möchte jetzt wenigstens das runter scrollen zeitgesteuert auslösen.
Müsste mittels Selfhtml...window.setTimeout funktionieren:
Code:
<script>
	$(function() {
	  $('a[href*=#]:not([href=#])').click(function() {
	    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {

	      var target = $(this.hash);
	      target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
	      if (target.length) {
	        setTimeout(function () {
	          $('html,body').animate({
	            scrollTop: target.offset().top
	          }, 1000);
	        }, 200);
	        return false;
	      }
	    }
	  });
	});
</script>
 
So funktioniert es nicht! - ?
Ich dachte mit windows.setTimeout die Funktion aufrufen, so wird sie doch nach wie vor nur beim klick auf ... aufgerufen.
?
 
Code:
$(function(){
	$('a[href*=#]:not([href=#])').click(function(){
		if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname){
			var target = $(this.hash);
			target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
			if (target.length){
				$('html,body').animate({
					scrollTop: target.offset().top
				}, 1000);
				
				return false;
			}
		}
	});
	
	window.setTimeout(
		function(){
			$("a[name=runter]").click();
		},
		5000
	);
});

PS: Ich finde ja Seiten, die ohne mein Zutun scrollen extrem nervig.
PPS: Du solltest etwas in der Fehlerkonsole sehen. Die Funktion "click" ist nicht definiert... bzw. dein kompletter inline-Eventlistener (also das onclick-Attribut im HTML) ist unnötig, da du das ja über jQuery handhabst.
 
Zurück
Oben