【问题标题】:CSS animate scrolling text using text-indentCSS使用文本缩进动画滚动文本
【发布时间】:2016-11-24 14:44:11
【问题描述】:

我创建了一个“重要通知”栏,我希望文本在屏幕上滚动。

这是通过为text-indent 设置动画来实现的,这似乎工作得很好,直到我的文本长于屏幕宽度。

这是 HTML:

<div class="sitemessage">
    dfgh hgsl;k sfghjh fgdlj dflgh sg jls sdfhsdkjldfjksg sdfg ksjdfhg klsjdfhg lksjdfhg klsjdhg lksjdhfg sldkfjgh sdflgkjsdfglk jsdfg klsdfgl jksdfgl jksdfg ljsdfgkjl dafglkj adfgkl sdfgkjh sdfgkhl sdfg kjlsdfgk lsdfgk jl sdfgkl adfgkl adfgklj sdfgklhj sdfgkl jdfg kljafdg ljkdfg klsdfgkhjl sdfgk jlsdfgkhj dfgkhl adfgkj adfkljg a
</div>

这是我的 CSS:

.sitemessage {
    width:100%;
    max-width: 960px;
    margin:auto;
    white-space: nowrap;
    overflow: hidden;
    text-indent: 965px;
    animation: floatText 15s infinite linear;
}

.sitemessage:hover {
    -webkit-animation-play-state: paused;
    -moz-animation-play-state: paused;
    -o-animation-play-state: paused;
    animation-play-state: paused;
}

@-webkit-keyframes floatText{
    from {
        text-indent: 100%;
    }

    to {
        text-indent: -100%;
    }
}

@media screen and (min-width: 960px) {
    @-webkit-keyframes floatText{
        from {
            text-indent: 960px;
        }

        to {
            text-indent: -100%;
        }
    }
}

我遇到的问题是 .sitemessage 容器中的文本长度可能比屏幕宽度的 100% 多很多或少很多,所以使用 -100% 的 text-indent 不会真的工作。

我可以在不借助 Javascript 或添加到 HTML 的情况下完成的任何想法。

【问题讨论】:

标签: html css css-animations text-indent


【解决方案1】:

您可以尝试使用transform 而不是text-indent

jsFiddle

.sitemessage {
  display: inline-block;
  white-space: nowrap;
  animation: floatText 15s infinite linear;
  padding-left: 100%; /*Initial offset*/
}
.sitemessage:hover {
  animation-play-state: paused;
}
@keyframes floatText {
  to {
    transform: translateX(-100%);
  }
}
<div class="sitemessage">
  START dfgh hgsl;k sfghjh fgdlj dflgh sg jls sdfhsdkjldfjksg sdfg ksjdfhg klsjdfhg lksjdfhg klsjdhg lksjdhfg sldkfjgh sdflgkjsdfglk jsdfg klsdfgl jksdfgl jksdfg ljsdfgkjl dafglkj adfgkl sdfgkjh END
</div>

【讨论】:

  • 关闭,但它正在为我需要做的 div 内的文本设置动画,而不是整个 div。我猜我可能需要添加一些 html 才能让它在我的情况下工作,但这不是世界末日。
  • 大部分百分比值相对于容器的宽度而不是元素本身的宽度,这就是为什么在这种情况下 transform 起作用的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
相关资源
最近更新 更多