В настоящее время я работаю над проектом, связанным с анимацией, и я пытаюсь добавить эффект легкости к числам.
Допустим, у нас есть массив n
объектов, каждый объект среди других параметров содержит значение непрозрачности,В настоящее время я только что сделал это так, чтобы непрозрачность изменялась в linear
от 1
до 0
(первый элемент имеет непрозрачность 1
, в то время как последний элемент имеет 0
).
Этокод:
document.body.innerHTML += '<style>.item,body{margin:5px}body{background:#000}.item{width:75px;height:75px;float:left;position:relative;box-sizing:border-box;border:1px solid red}.bg,.text{position:absolute;top:0;left:0}.text{width:100%;height:100%;font-size:30px;text-align:center;line-height:75px;color:#fff}.bg{background:red;width:calc(100% - 2px);height:calc(100% - 2px);margin:1px}</style><div class="wrap"></div>';
let array = [];
for(let i = 0; i < 27; i++) {
array.push(i);
}
for(let i = 0; i < array.length; i++) {
let linearOpacity = 1 - i / (array.length - 1);
console.log(linearOpacity);
document.querySelector('.wrap').innerHTML += (
'<div class="item">' +
'<div class="bg" style="opacity:' + linearOpacity + ';"></div>' +
'<div class="text">' + i + '</div>' +
'</div>'
);
}
Теперь, как реализовать формулу замедления, при которой непрозрачность будет медленно уменьшаться в начале, чтобы она оставалась высокой в течение более длительного времени, а затем уменьшалась быстрее ближе к концу?