【问题标题】:CSS Animation: Fade in + transform animation for each word not workingCSS动画:每个单词的淡入+变换动画不起作用
【发布时间】:2019-10-24 08:10:01
【问题描述】:

我试图让每个单词从 0 不透明度和 translateY(65px) 开始。然后在过渡到 translateY(0) 的同时一次淡入一个单词。每个词都在淡入,但没有翻译。这是我想要完成的一个示例:https://www.bigdropinc.com/(向下滚动到段落)

var $el = $(".example:first"), text = $el.text(),
    words = text.split(" ");

var html = "";
for (var i = 0; i < words.length; i++) {
    html += "<span>" + words[i] + " </span>";
};
$el.html(html).children().each(function(i){
  $(this).addClass('fadeInUp');
});
@keyframes fadeInUp{
    0%{
    transform: translateY(65px);
    opacity: 0;
    }
    100%{
        opacity:1;
        transform:none;
    }
}
.fadeInUp{
    transition: opacity .5s ease-in-out,transform .8s ease-in-out,-webkit-transform .8s ease-in-out;
    animation:fadeInUp 3s forwards;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="example">
    These are some words that should be faded in and transformed one after the other.
</div>

【问题讨论】:

    标签: jquery css jquery-animate css-animations


    【解决方案1】:

    您需要更改 display 属性才能让 transform 正常工作:

    var $el = $(".example:first"), text = $el.text(),
        words = text.split(" ");
    
    var html = "";
    for (var i = 0; i < words.length; i++) {
        html += "<span>" + words[i] + " </span>";
    };
    $el.html(html).children().each(function(i){
      $(this).addClass('fadeInUp');
    });
    @keyframes fadeInUp{
        0%{
        transform: translateY(65px);
        opacity: 0;
        }
        100%{
            opacity:1;
            transform:none;
        }
    }
    .fadeInUp{
        transition: opacity .5s ease-in-out,transform .8s ease-in-out,-webkit-transform .8s ease-in-out;
        animation:fadeInUp 3s forwards;
        display: inline-block;
        margin-right: 6px;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="example">
        These are some words that should be faded in and transformed one after the other.
    </div>

    【讨论】:

    • 好吧,这是有道理的。但是在您的示例中,每个单词一次都不转换一个。我正在寻找这种效果:bigdropinc.com(向下滚动到第一段)
    • 是的,我看到了,但在你的代码中已经是这样了。我刚刚解决了您报告的问题。只需将添加类的代码更改为在 setinterval 函数中执行此操作即可
    猜你喜欢
    • 2020-12-06
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 2019-09-24
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    相关资源
    最近更新 更多