2016-11-30 7 views
0

テキストを左から右に、次のように入力します。codepen動的テキストの色の塗りつぶし

これは、次のCSSでの問題の原因となっている:32PXより長い

@keyframes stripes { 
    to { 
     width: 32px; 
    } 
} 

単語、完全に充填し、32PXによって停止されていないが。この幅を大きくすると、短い単語(犬など)が速いペースで埋められます。

私は2秒(関係なく、ワード長の)に充填-ですべての言葉を持っていると思い

誰もがこれをしてくださいどのように行うことができるかのアイデアを持っていますか?

ありがとうございます!

答えて

4

.tooltiptext { 
 
    position: relative; 
 
    display: inline-block; 
 
} 
 
.tooltiptext:after { 
 
    content: ""; 
 
} 
 
.popUpWord { 
 
    color: pink; 
 
    white-space: nowrap; 
 
} 
 
.popUpWordBlack { 
 
    color: black; 
 
} 
 
.outPop { 
 
    margin: auto; 
 
    background: none; 
 
    overflow: hidden; 
 
    display: block; 
 
    position: absolute; 
 
    animation-play-state: unset; 
 
    left: 0; 
 
    top: 0; 
 
    width:0; 
 
} 
 
.outPopBlack:hover + .outPop, 
 
.outPop:hover { 
 
    animation: stripes 2s linear 1 forwards; 
 
} 
 
.outPopBlack { 
 
    display: block; 
 
    position: relative; 
 
    z-index: 0; 
 
} 
 
@keyframes stripes { 
 
    to { 
 
     width: 100%; 
 
    } 
 
}
<span class="tooltiptext"> 
 
    <span class="outPopBlack"> 
 
    <span class="popUpWordBlack">hello World</span> 
 
    </span> 
 
    <span class="outPop"> 
 
    <span class="popUpWord">hello World</span> 
 
    </span> 
 
</span>

あなたは

を追加し、あなたがこの方法を使用することができ、複数の回線を使用する必要がない場合は、 "表示:インラインブロック;"ツールチップテキストへ

空白を追加:nowrap; .popUpWordには、

.outPopの変更スタイルは になります。 背景:なし。 オーバーフロー:非表示。 display:ブロック; ポジション:絶対; アニメーション再生状態:未設定。 左:0; トップ:0; 幅:0;

はまた、あなたは以下のコードで

.text { 
 
    position: relative; 
 
    display: inline-block; 
 
    z-index: 0; 
 
} 
 

 
.text:after { 
 
    content: "HEllo World"; 
 
    position: absolute; 
 
    z-index: 1; 
 
    color: red; 
 
    left: 0; 
 
    top: 0; 
 
    width: 0; 
 
    white-space: nowrap; 
 
    overflow: hidden; 
 
    transition: 500ms linear all; 
 
} 
 

 
.text:hover:after { 
 
    width: 100%; 
 
} 
 

 
.text1 { 
 
    position: relative; 
 
    display: inline-block; 
 
    z-index: 0; 
 
} 
 

 
.text1>.dup { 
 
    content: "HEllo World"; 
 
    position: absolute; 
 
    z-index: 1; 
 
    color: red; 
 
    left: 0; 
 
    top: 0; 
 
    width: 0; 
 
    white-space: nowrap; 
 
    overflow: hidden; 
 
    transition: 500ms linear all; 
 
} 
 

 
.text1:hover>.dup { 
 
    width: 100%; 
 
}
<div class="text"> 
 
    HEllo World 
 
</div> 
 
<br> 
 
<br> 
 
<div class="text1"> 
 
    HEllo World 
 
    <span class="dup">HEllo World</span> 
 
</div>

+0

グレートおかげでこれらのメソッドを使用することができます!そして、2つのオーバーラップスパンを持たずに、左から右にカラーテキストを表示する方法はありますか? DOMの要素を見つけようとすると複雑になる – Techs

+0

はい..私はちょうど私の答えでコードを追加しました.. plsはそれを参照します – Nandhu

+0

私はコードを見ています。あなたの例では、CSSの 'content'プロパティにオーバーレイするテキストを指定したために機能します。異なるフレーズを使用すると、これはどのように行うことができますか? – Techs

関連する問題