• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

[Javascript] Autoscrolling funktioniert auf iPad nicht?

Chriis

Dithmarscher Paradiesapfel
Registriert
25.01.10
Beiträge
1.467
Liebe ATer,

ich bin gerade dabei, ein Autoscrolling für eine Seite zu bauen... Die Seite soll im Prinzip einmal komplett über den Viewport bis unten hin gescrollt werden.
Im Safari funktioniert das auch... Aber Auf dem iPad (Mini :-) ) leider nicht... :-/

Kann mir jemand von Euch sagen, warum das so ist?

Das ist der Code bis zum body-Tag:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>


<script language="JavaScript">


function AutomatischScrollen()


{
	
window.scrollBy(0,1);
Scrollen();
}


 
function Scrollen()
{
GescrollteZeit = window.setTimeout("AutomatischScrollen()", 30);
}
</script>




<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Content</title>
</head>


<body onload="AutomatischScrollen();">
 
Hat das vielleicht etwas damit zu tun, das das iPad die Seite direkt länger macht, und es somit nichts zu scrollen gibt??
 
Ich habe gerade auch mal die Seite in einen iFrame gepackt... auf Safari scrollt der dann in dem iFrame (den ich direkt shcön klein gemacht habe).
Auf dem iPad skaliert der auch erst mal den iFrame auf nahezu Vollbild. Und scrollt dadrin auch nicht...

EDIT: iPad 3 tut das selbe...
 
Zuletzt bearbeitet:
Code:
var scroller = (function () {
	"use strict";
	var timer,
		isRunning = false;


	return {
		"start": function (speed) {
			if (!isRunning) {
				isRunning = true;


				timer = window.setInterval(this.step, speed);
			}
		},
		"step": function () {
			// TODO: check if bottom was reached
			if (false) {
				this.stop();
			}


			window.scrollBy(0, 1);
		},
		"stop": function () {
			if (isRunning) {
				isRunning = false;


				window.clearInterval(timer);
			}
		},
		"isRunning": function () {
			return isRunning;
		}
	};
}());




document.addEventListener("DOMContentLoaded", {
    "handleEvent": function (event) {
		"use strict";
	    scroller.start(10);
	    document.removeEventListener("DOMContentLoaded", this.handleEvent);
    }
}, false);

Mal bisschen umgebastelt, so funktioniert es jedenfalls bei mir. Denke mal lag an dem <body onload="…"> aber die Events in JS zu definieren ist ohnehin schöner. ;)
 
Super, dank dir! :-)
Ich werd den Code gleich direkt mal einpflegen und schauen, ob er in meinem Projekt funktioniert!
 
Gern geschehen :) Sag bescheid, falls was nicht passt dann schau ich's mir nochmal an ^^