微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

播放两个数字之间的每个数字的动画

如何解决播放两个数字之间的每个数字的动画

我正在尝试获取两个数字之间的所有数字,并为每个数字播放一个动画。 如果添加班级,则会显示动画。

<div class="section">
    <div class="heading">Anstehende Termine</div>
    <div class="grid">
        <div class="left">
            <div class="day">
                <div id="number1" class="numbers"></div>
                <div id="number2" class="numbers"></div>
            </div>
        </div>
        <div class="mid">
            <div class="title">16. Arbeitskreis Energiemanagement in kleineren Kommunen</div>
            <div class="description">Kom.EMS ist ein Instrument zur Einführung eines strategischen kommunalen Energiemanagements,das von den Energieagenturen Baden-Württemberg,Thüringen,Sachsen und Sachsen-Anhalt entwickelt und in den Kommunen…</div>
            <div class="title transparent">Unternehmensübernahme – erfolgreich</div>
            <img class="arrow-bottom" src="../assets/arrow_bottom.svg" alt="scroll bottom">
        </div>
        <div class="right">
            <img class="arrow" src="../assets/arrow.svg" alt="Alle Termine">
        </div>
    </div>
</div>

<div class="section2">
    <div id="old_date" class="date">03</div>
    <div id="new_date" class="date">09</div>

</div>

old_date和new_date只是一个字符串,我将其设置为int,以获取间的数字数组。 然后,我检查数字是否为

整个目标是我有多个事件,每个事件都有一个日期。如果用户单击以显示一个事件,则日期应更改为新事件的日期。但是对于两个日期之间的每个数字,该动画应该始终为1500ms。


let old_date = $('#old_date').text();
let new_date = $('#new_date').text();

let old_date_string = parseInt(old_date);
let new_date_string = parseInt(new_date);

function range(start,end) {
    return Array(end - start + 1).fill().map((_,idx) => start + idx)
}
let result = range(old_date_string,new_date_string);
console.log(result);

result.forEach(element => {

    if (element < 10) {
        let numString = element.toString();
        let fullString = '0' + numString;
            setTimeout(function () {
                anim(fullString);
            },0);
            console.log(fullString)
    } else {
            let fullString = element.toString();
            setTimeout(function () {
                anim(fullString);
            },0);
            console.log(fullString)
    }

});

let number1 = $('#number1');
let number2 = $('#number2');

number1.text(old_date);

function anim (fullString) {

    let numbers = $('.numbers')
    numbers.css('transition',TransitionDuration);
    numbers.addClass('anim');

    number2.text(fullString);

    setTimeout(function(){
        numbers.css('transition','');
        numbers.removeClass('anim');
    },1500);
}


//calc the transition duration between each anim(),to always be 1500ms
let clacTransition = 1500 / result.length;
let TransitionDuration = clacTransition.toString() + "ms";

这是CSS中的动画

.numbers {
    width: 100%;
    height: 100%;
    text-align: center;
    font-size: 82px;
    color: #C81423;
}
.numbers.anim {
    transform: translateY(-100px);
}
#date1 {
    display: none;
}
#date2 {
    display: block;
}

我无法使每个数字的动画重新开始。 感谢您的帮助

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。