You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Vestride_Shuffle/src/shuffle-item.js

56 lines
1.1 KiB
JavaScript

import Point from './point';
import Classes from './classes';
class ShuffleItem {
constructor(element) {
this.element = element;
this.isVisible = true;
}
reveal() {
this.isVisible = true;
this.element.classList.remove(Classes.CONCEALED);
this.element.classList.add(Classes.FILTERED);
}
conceal() {
this.isVisible = false;
this.element.classList.remove(Classes.FILTERED);
this.element.classList.add(Classes.CONCEALED);
}
init() {
this.addClasses([Classes.SHUFFLE_ITEM, Classes.FILTERED]);
this._applyCss(ShuffleItem.css);
this.scale = ShuffleItem.Scale.VISIBLE;
this.point = new Point();
}
addClasses(classes) {
classes.forEach((className) => {
this.element.classList.add(className);
});
}
_applyCss(obj) {
Object.keys(obj).forEach((key) => {
this.element.style[key] = obj[key];
});
}
}
ShuffleItem.css = {
position: 'absolute',
top: 0,
left: 0,
visibility: 'visible',
'will-change': 'transform',
};
ShuffleItem.Scale = {
VISIBLE: 1,
FILTERED: 0.001,
};
export default ShuffleItem;