forked from micku7zu/vanilla-tilt.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvanilla-tilt.d.ts
164 lines (148 loc) · 4.08 KB
/
vanilla-tilt.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
// Extended Type definitions for vanilla-tilt 1.7.0
// Project: https://github.com/micku7zu/vanilla-tilt.js
// Definitions by: Livio Brunner <https://github.com/BrunnerLivio>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/**
* Options which configures the tilting
*/
export interface TiltOptions {
/**
* Reverse the tilt direction
*/
reverse?: boolean;
/**
* Max tilt rotation (degrees)
*/
max?: number;
/**
* Starting X tilt rotation (degrees)
*/
startX?: number;
/**
* Starting Y tilt rotation (degrees)
*/
startY?: number;
/**
* Transform perspective, the lower the more extreme the tilt gets.
*/
perspective?: number;
/**
* 2 = 200%, 1.5 = 150%, etc..
*/
scale?: number;
/**
* Speed of the enter/exit transition
*/
speed?: number;
/**
* Set a transition on enter/exit.
*/
transition?: boolean;
/**
* What axis should be disabled. Can be X or Y.
*/
axis?: null | "x" | "y";
/**
* If the tilt effect has to be reset on exit.
*/
reset?: boolean;
/**
* Easing on enter/exit.
*/
easing?: string;
/**
* if it should have a "glare" effect
*/
glare?: boolean;
/**
* the maximum "glare" opacity
*/
"max-glare"?: number;
/**
* false = VanillaTilt creates the glare elements for you, otherwise
* you need to add .js-tilt-glare>.js-tilt-glare-inner by yourself
*/
"glare-prerender"?: boolean;
// If true, parallax effect will listen to mouse move events on the whole document, not only the selected element
"full-page-listening"?: boolean;
// Boolean to enable/disable device orientation detection,
gyroscope?: boolean;
// css-selector or link to HTML-element what will be listen mouse events
"mouse-event-element"?: string;
// This is the bottom limit of the device angle on X axis,
// meaning that a device rotated at this angle would tilt the element as if
// the mouse was on the left border of the element;
gyroscopeMinAngleX?: number
// This is the top limit of the device angle on X axis,
// meaning that a device rotated at this angle would tilt the element as if
// the mouse was on the right border of the element;
gyroscopeMaxAngleX?: number
// This is the bottom limit of the device angle on Y axis,
// meaning that a device rotated at this angle would tilt the element as if
// the mouse was on the top border of the element;
gyroscopeMinAngleY?: number
// This is the top limit of the device angle on Y axis,
// meaning that a device rotated at this angle would tilt the element as if
// the mouse was on the bottom border of the element;
gyroscopeMaxAngleY?: number
//How many gyroscope moves to decide the starting position.
gyroscopeSamples?: number
}
export interface TiltValues {
/**
* The current tilt on the X axis
*/
tiltX: number;
/**
* The current tilt on the Y axis
*/
tiltY: number;
/**
* The current percentage on the X axis
*/
percentageX: number;
/**
* The current percentage on the Y axis
*/
percentageY: number;
}
export interface HTMLVanillaTiltElement extends HTMLElement {
vanillaTilt: VanillaTilt;
}
/**
* A smooth 3D tilt javascript library forked from Tilt.js (jQuery version).
*/
export default class VanillaTilt {
/**
* Creates a new instance of a VanillaTilt element.
* @param element The element, which should be a VanillaTilt element
* @param settings Settings which configures the element
*/
constructor(element: HTMLElement, settings?: TiltOptions);
/**
* Initializes one or multiple elements
* @param elements The element, which should tilt
* @param settings Settings, which configures the elements
*/
static init(elements: HTMLElement | HTMLElement[], settings?: TiltOptions): void;
/**
* Resets the styling
*/
reset(): void;
/**
* Get values of instance
*/
getValues(): TiltValues;
/**
* Destroys the instance and removes the listeners.
*/
destroy(): void;
/**
* Start listening to events
*/
addEventListeners(): void;
/**
* Stop listening to events
*/
removeEventListener(): void;
}