-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathelement_class.js
More file actions
65 lines (52 loc) · 1.58 KB
/
element_class.js
File metadata and controls
65 lines (52 loc) · 1.58 KB
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
class ElementControl {
constructor(elementId) {
this.id = elementId;
let selectedElement = this.select();
this.opacity = int(selectedElement.style('opacity'));
this.targetOpacity = 0
this.framesToTargetOpacity = 0;
this.opacityChangePerFrame = 0;
this.frameCount = 0;
this.position = selectedElement.position();
this.size = selectedElement.size();
}
select(){
return select(this.id);
}
update(){
if(this.frameCount < this.framesToTargetOpacity){
this.opacity = this.opacity + this.opacityChangePerFrame;
this.frameCount = this.frameCount + 1;
this.setStyleProperty('opacity', this.opacity + '%');
}
if(this.opacity <= 0.1){
this.display(false);
}
}
setStyleProperty(property, value){
this.select().style(property, value);
}
startOpacityChange(newOpacity, durationInFrames, display = null){
if(this.frameCount == this.framesToTargetOpacity){
this.frameCount = 0;
this.targetOpacity = newOpacity;
this.framesToTargetOpacity = durationInFrames;
this.opacityChangePerFrame = (this.targetOpacity - this.opacity) / this.framesToTargetOpacity;
this.display(true, display);
}
}
display(onOff, otherDisplay = null){
let selectedElement = this.select();
if(onOff == true){
if(otherDisplay != null){
selectedElement.style('display', otherDisplay);
}
else{
selectedElement.style('display: inline;');
}
}
else{
selectedElement.style('display: none;');
}
}
}