InputDetect.js

/**
 * InputDetect
 *
 * @module InputDetect
 * @author natade (https://github.com/natade-jp)
 * @license MIT
 */

import IDTouch from "./input/IDTouch.js";
import IDTools from "./input/IDTools.js";

export default class InputDetect {
	/**
	 * @private
	 */
	constructor() {
		/**
		 * @type {IDTouch}
		 * @private
		 */
		this._data = new IDTouch();
	}

	/**
	 * InputDetect のインスタンスを生成します。
	 * @returns {InputDetect}
	 */
	static create() {
		return new InputDetect();
	}

	/**
	 * 対象要素にタッチイベントリスナーを設定します。
	 * @param {HTMLElement} element - イベントを監視するDOM要素
	 */
	setListenerOnElement(element) {
		this._data.setListenerOnElement(element);
	}

	/**
	 * 現在の入力情報が入ったIDTouchインスタンスを取得します。
	 * 各ボタンや位置、ホイール回転量が渡され、渡した後はホイール量がリセットされます。
	 * @returns {IDTouch} - タッチデータを持つIDTouchインスタンス
	 */
	pickInput() {
		const pick_data = new IDTouch();
		this._data.pickInput(pick_data);
		return pick_data;
	}

	/**
	 * スクロールを禁止します。
	 *
	 * @function
	 * @returns {void}
	 *
	 * @example
	 * // ページの縦スクロールを禁止したいときに実行
	 * IDTools.noScroll();
	 */
	static noScroll() {
		IDTools.noScroll();
	}
}