Zdarzenia#

Typ scroll#

Typ:scroll
Interfejs:UIEvent
Sync / Async:Async
BąbelkowanieNie / Tak
Zaufane celeDocument, Element
AnulowanieNie
Domyślna akcjaBrak
Kontekst
(zaufane zdarzenia)

Zdarzenie typu scroll musi zostać wysłane przez aplikację kliencką w chwili, kiedy widok dokumentu lub elementu uległ przewinięciu. Zdarzenie to wysyłane zostaje dopiero po wystąpieniu przewinięcia.

Wysyłanie zdarzenie scroll do węzła typu Document musi bąbelkować do widoku domyślnego. W przypadku elementów zdarzenie nie bąbelkuje.

W specyfikacji HTML5 nie występują żadne wytyczne odnośnie automatycznego odpalania przez przeglądarki internetowe zdarzenia typu scroll. Szczegółowe informacje porozrzucane są w innych dokumentach, jak np. "CSSOM View Module".

Z praktycznego punktu widzenia przewinięcie widoku elementu lub dokumentu można spowodować poprzez:

Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<!DOCTYPE html>
<html>

<head>

	<style>

		div{
			border: 2px solid;
			padding: 10px;
			width: 200px;
			height: 100px;
			overflow: auto;
		}

	</style>

</head>

<body>

	<p>Przewiń zawartość kontenera myszą lub klawiaturą.</p>

	<div>
		<p>Jakaś zawartość przewijalnego elementu.</p>
		<p>Jakaś zawartość przewijalnego elementu.</p>
		<p>Jakaś zawartość przewijalnego elementu.</p>
		<p>Jakaś zawartość przewijalnego elementu.</p>
	</div>

	<p style="color: blue;">Szczegółowe informacje dla przechwyconego zdarzenia:</p>
	<p id="info"></p>

	<script>

		var info = document.getElementById("info");
		var div = document.getElementsByTagName("div")[0];

		function readInfo(e){

			var data = "Interfejs: " + e
				+ "<br>" + "e.type: " + e.type
				+ "<br>" + "e.currentTarget: " + e.currentTarget
				+ "<br>" + "e.target: " + e.target
				+ "<br>" + "e.eventPhase: " + e.eventPhase + "<br><br>";

			info.innerHTML = info.innerHTML + data;

		}

		div.addEventListener("scroll", readInfo, false); // faza celu - trzeci argument nieistotny

		div.parentNode.addEventListener("scroll", readInfo, true); // przechwyci zdarzenie dla div

		div.parentNode.addEventListener("scroll", readInfo, false); // uchwyt nie zostanie wywołany

	</script>

</body>

</html>

Trzeba nadmienić, że uchwyty przez właściwość i uchwyty przez atrybut, które zarejestrowano na elemencie <body> lub elementach ramek, są traktowane tak jakby zarejestrowano je na obiekcie Window, który je zawiera. Uwaga nie dotyczy uchwytów przez metodę.

Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<!DOCTYPE html>
<html>

<head>

	<style>

		div{
			width: 400px;
			height: 500px;
			background: green;
			overflow: auto;
		}

	</style>

</head>

<body>

	<p>Przewiń zawartość strony myszą lub klawiaturą.</p>

	<p style="color: blue;">Szczegółowe informacje dla przechwyconego zdarzenia:</p>
	<p id="info"></p>

	<script>

		var info = document.getElementById("info");
		var div = document.getElementsByTagName("div")[0];

		function readInfo(e){

			var data = "Interfejs: " + e
				+ "<br>" + "e.type: " + e.type
				+ "<br>" + "e.currentTarget: " + e.currentTarget
				+ "<br>" + "e.target: " + e.target
				+ "<br>" + "e.eventPhase: " + e.eventPhase + "<br><br>";

			info.innerHTML = info.innerHTML + data;

		}

		document.body.onscroll = readInfo;

		document.body.addEventListener("scroll", readInfo, true); // uchwyt nie zostanie wywołany
		document.body.addEventListener("scroll", readInfo, false); // uchwyt nie zostanie wywołany

	</script>

	<div>Jakieś wypełnienie.</div>

</body>

</html>

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

Zdarzenia (H1) Typ scroll (H2) Specyfikacje i inne materiały (H3)