MouseEvent#

new WheelEvent()#

Interfejs WheelEvent może być wywoływany w roli konstruktora, dzięki czemu pozwala na bezpośrednie tworzenie nowych zdarzeń kółka (syntetycznych) wprost z interfejsu. Przy tworzeniu nowego zdarzenia od razu ustalany jest jego typ (pierwszy argument) oraz specyficzne cechy ustawiane za pomocą opcjonalnego słownika WheelEventInit (drugi argument).

Składnia#

Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
var new_wheelEvent = new WheelEvent(type [, wheelEventInitDict]);

gdzie poszczególne człony oznaczają:

Algorytm wywołania konstruktora new WheelEvent(type, wheelEventInitDict) nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:

  1. Zwróć nowe zdarzenie kółka za pomocą algorytmu tworzenia zdarzenia z typem type i słownikiem wheelEventInitDict (jeśli występuje).

Obiekt zwracany przez konstruktor new WheelEvent() implementuje interfejs WheelEvent, dlatego ma dostęp do wszystkich poleceń z tego interfejsu (oraz z kolejnych interfejsów w łańcuchu dziedziczenia). Warto podkreślić, że i opcjonalny słownik WheelEventInit dziedziczy ze słownika MouseEventInit, dlatego ma dostęp do wszystkich jego członków w chwili przekazania do konstruktora.

Nowy obiekt zdarzenia będzie miał ustawiane domyślne wartości dla wszystkich swoich właściwości i dodatkowo zostanie automatycznie zainicjowany zgodnie z przekazanymi argumentami przy jego wywołaniu, w przeciwieństwie do polecenia Document.createEvent(), dlatego może być od razu wysłany za pomocą metody EventTarget.dispatchEvent().

W ramach uzupełnienia warto przeanalizować wady i zalety poszczególnych poleceń odpowiedzialnych za tworzenie niezaufanych zdarzeń.

Ze względów bezpieczeństwa zdarzenia generowane przy użyciu konstruktora new WheelEvent() muszą ustawiać wartość właściwości Event.isTrusted na boolowskie false.

Prosty przykład:

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

	// Tworzymy nowe zdarzenie
	var wheelEvent1 = new WheelEvent("piesek");

	document.write(wheelEvent1); // [object WheelEvent]
	document.write("<br>");
	document.write(wheelEvent1.type); // piesek
	document.write("<br>");
	document.write(wheelEvent1.bubbles); // false
	document.write("<br>");
	document.write(wheelEvent1.cancelable); // false
	document.write("<br>");
	document.write(wheelEvent1.view); // null
	document.write("<br>");
	document.write(wheelEvent1.detail); // 0
	document.write("<br>");
	document.write(wheelEvent1.screenX); // 0
	document.write("<br>");
	document.write(wheelEvent1.screenY); // 0
	document.write("<br>");
	document.write(wheelEvent1.clientX); // 0
	document.write("<br>");
	document.write(wheelEvent1.clientY); // 0
	document.write("<br>");
	document.write(wheelEvent1.altKey); // false
	document.write("<br>");
	document.write(wheelEvent1.ctrlKey); // false
	document.write("<br>");
	document.write(wheelEvent1.metaKey); // false
	document.write("<br>");
	document.write(wheelEvent1.shiftKey); // false
	document.write("<br>");
	document.write(wheelEvent1.button); // 0
	document.write("<br>");
	document.write(wheelEvent1.buttons); // 0
	document.write("<br>");
	document.write(wheelEvent1.relatedTarget); // null
	document.write("<br>");
	document.write(wheelEvent1.deltaX); // 0
	document.write("<br>");
	document.write(wheelEvent1.deltaY); // 0
	document.write("<br>");
	document.write(wheelEvent1.deltaZ); // 0
	document.write("<br>");
	document.write(wheelEvent1.deltaMode); // 0
	document.write("<br>");
	document.write(wheelEvent1.defaultPrevented); // false
	document.write("<br>");
	document.write(wheelEvent1.isTrusted); // false
	document.write("<br>");
	document.write(wheelEvent1.eventPhase); // 0
	document.write("<br>");
	document.write(wheelEvent1.timeStamp); // liczba całkowita z wartością zależną od chwili uruchomienia przykładu
	document.write("<br>");
	document.write(wheelEvent1.currentTarget); // null
	document.write("<br>");
	document.write(wheelEvent1.target); // null

	document.write("<br><br>");

	// Tworzymy kolejne zdarzenie
	var wheelEvent2 = new WheelEvent("piesek", {
		bubbles: true,
		cancelable: true,
		view: window,
		detail: 69,
		screenX: 50,
		screenY: 100,
		clientX: 150,
		clientY: 200,
		altKey: true,
		ctrlKey: true,
		metaKey: true,
		shiftKey: true,
		button: 1,
		buttons: 7,
		relatedTarget: document.documentElement,
		deltaX: 5.1,
		deltaY: 10.2,
		deltaZ: 15.3,
		deltaMode: 2
	});

	document.write(wheelEvent2); // [object WheelEvent]
	document.write("<br>");
	document.write(wheelEvent2.type); // piesek
	document.write("<br>");
	document.write(wheelEvent2.bubbles); // true
	document.write("<br>");
	document.write(wheelEvent2.cancelable); // true
	document.write("<br>");
	document.write(wheelEvent2.view); // [object Window]
	document.write("<br>");
	document.write(wheelEvent2.detail); // 69
	document.write("<br>");
	document.write(wheelEvent2.screenX); // 50
	document.write("<br>");
	document.write(wheelEvent2.screenY); // 100
	document.write("<br>");
	document.write(wheelEvent2.clientX); // 150
	document.write("<br>");
	document.write(wheelEvent2.clientY); // 200
	document.write("<br>");
	document.write(wheelEvent2.altKey); // true
	document.write("<br>");
	document.write(wheelEvent2.ctrlKey); // true
	document.write("<br>");
	document.write(wheelEvent2.metaKey); // true
	document.write("<br>");
	document.write(wheelEvent2.shiftKey); // true
	document.write("<br>");
	document.write(wheelEvent2.button); // 1
	document.write("<br>");
	document.write(wheelEvent2.buttons); // 7
	document.write("<br>");
	document.write(wheelEvent2.relatedTarget); // [object HTMLHtmlElement]
	document.write("<br>");
	document.write(wheelEvent2.deltaX); // 5.1
	document.write("<br>");
	document.write(wheelEvent2.deltaY); // 10.2
	document.write("<br>");
	document.write(wheelEvent2.deltaZ); // 15.3
	document.write("<br>");
	document.write(wheelEvent2.deltaMode); // 2
	document.write("<br>");
	document.write(wheelEvent2.defaultPrevented); // false
	document.write("<br>");
	document.write(wheelEvent2.isTrusted); // false
	document.write("<br>");
	document.write(wheelEvent2.eventPhase); // 0
	document.write("<br>");
	document.write(wheelEvent2.timeStamp); // liczba całkowita z wartością zależną od chwili uruchomienia przykładu
	document.write("<br>");
	document.write(wheelEvent2.currentTarget); // null
	document.write("<br>");
	document.write(wheelEvent2.target); // null

</script>

Na chwilę obecną wszystkie aktualne przeglądarki pozwalają na wywoływanie interfejsu WheelEvent w roli konstruktora, oczywiście z wyjątkiem IE11.

Interfejs Web IDL#

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
[Constructor(DOMString type, optional WheelEventInit wheelEventInitDict)]
interface WheelEvent : MouseEvent {
};

dictionary WheelEventInit : MouseEventInit {
	double deltaX = 0.0;
	double deltaY = 0.0;
	double deltaZ = 0.0;
	unsigned long deltaMode = 0;
};

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

MouseEvent (H1) new WheelEvent() (H2) Składnia (H3) Interfejs Web IDL (H3) Specyfikacje i inne materiały (H3)