mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-06 11:44:40 +00:00
37 lines
1.3 KiB
TypeScript
37 lines
1.3 KiB
TypeScript
/**
|
|
* Update the background animation durations based on the slider input.
|
|
* @param {Object} item - The object containing the bksliderinput property.
|
|
* @param {number} [minDuration=1] - The minimum animation duration in seconds.
|
|
* @param {number} [maxDuration=10] - The maximum animation duration in seconds.
|
|
*/
|
|
export function updateBgDurations(speed, minDuration = 0.5, maxDuration = 10) {
|
|
// Class names to look for
|
|
const bgClasses = ['bg', 'bg2', 'bg3'];
|
|
let reversedValue;
|
|
|
|
if (speed.bksliderinput === undefined) {
|
|
// Reverse the slider direction to align with the animation
|
|
reversedValue = 150 - speed;
|
|
} else {
|
|
reversedValue = 150 - speed.bksliderinput;
|
|
}
|
|
|
|
// Range of possible animation durations
|
|
const durationRange = maxDuration - minDuration;
|
|
|
|
// Function to calculate animation duration
|
|
const calcDuration = (baseValue, offset = 0) => minDuration + ((baseValue / 200) + offset) * durationRange;
|
|
|
|
// Iterate through each class name to update its animation duration
|
|
bgClasses.forEach((className, index) => {
|
|
const elements = document.getElementsByClassName(className);
|
|
|
|
if (elements.length === 0) {
|
|
return;
|
|
}
|
|
|
|
const offset = index * 0.05;
|
|
const duration = calcDuration(reversedValue, offset);
|
|
elements[0].style.animationDuration = `${duration}s`;
|
|
});
|
|
} |