26 lines
893 B
JavaScript
26 lines
893 B
JavaScript
const anime = require('animejs').default;
|
|
|
|
function wiggle(id, idle) {
|
|
if (!idle) return true;
|
|
const duration = 300;
|
|
const target = document.getElementById(id);
|
|
const x = window.innerWidth * 0.01 * (Math.round(Math.random()) ? Math.random() : -Math.random());
|
|
const y = window.innerHeight * 0.01 * (Math.round(Math.random()) ? Math.random() : -Math.random());
|
|
|
|
const originalX = parseFloat(idle.animations[0].currentValue);
|
|
const originalY = parseFloat(idle.animations[1].currentValue);
|
|
// console.log(x, y);
|
|
return anime({
|
|
targets: target,
|
|
translateX: [originalX + x, originalX - x, originalX],
|
|
translateY: [originalY + y, originalY - y, originalY],
|
|
duration,
|
|
easing: 'easeInOutSine',
|
|
// direction: 'alternate',
|
|
begin: idle.pause,
|
|
complete: idle.play,
|
|
});
|
|
}
|
|
|
|
module.exports = wiggle;
|