2016-11-24 7 views
3

テキストを画面上でスクロールさせるために、「重要な注意」バーを作成しました。CSSは、テキストインデントを使用してスクロールテキストをアニメーション化します

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%未満なので、text-indentを-100%使用すると実際には機能しません。

私はJavascriptに頼らずに、あるいはHTMLに追加することなく、何かできることがあれば何でも構いません。

+1

行動の迅速なフィドル:https://jsfiddle.net/r2u8Ldkt/ –

+1

は '' を再作成。 2016年、素敵! https://developer.mozilla.org/en-US/docs/Web/HTML/Element/marquee – Roberrrt

答えて

5

text-indentの代わりにtransformを試してみてください。

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>

+0

閉じるが、div全体ではなく、必要なdiv内のテキストをアニメートしている。私は私の場合にこれを動作させるためにhtmlのビットを追加する必要があるかもしれないと思っていますが、それは世界の終わりではありません。 – Tom

+0

ほとんどのパーセンテージ値は、要素自体の幅ではなく、コンテナの幅を基準にしています。そのため、この場合はtransformが機能します。 – Stickers

関連する問題