2014-04-07 144 views
3

我有單行(未包裹)全寬div內的文本。CSS3 - 動畫文本對齊左/中/右

是否有可能進行動畫這個元素text alignment所以文本移動到指定的邊/中心 - 我知道我可以mensure寬度和使用relative/absolute positioning,但我不覺得它直接解決方案,它也可能會導致一些問題作出響應?

這裏是demo沒有動畫呢。

+0

嘗試[這](http://jsfiddle.net/mdesdev/LNfqj/1/);) – mdesdev

+0

@mdesdev中心沒有文本對齊中心... –

回答

1

我今天需要類似的東西。我想要一個以文字開頭的按鈕對齊右側的按鈕,然後將文本動畫化以懸停/聚焦爲中心。

這是我想出來的。我發現的幾個答案中存在的問題是,它們動畫「位置」,即not very performant。我只想使用「變換」。這是一個標記中心按鈕文本的很多標記,但似乎運作良好。

body {margin: 0} 
 
ul, li { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
li { 
 
    width: 30%; 
 
    padding: 10px 0; 
 
} 
 
button { 
 
    width: 100%; 
 
    height: 50px; 
 
    margin: 0; 
 
} 
 
.center-line { 
 
    position: absolute; 
 
    width: 2px; 
 
    height: 100%; 
 
    background: lightgray; 
 
    left: 15%; 
 
    top: 0; 
 
} 
 

 
.outer { 
 
    text-align: right; 
 
    transition: 200ms transform; 
 
} 
 
.inner { 
 
    display: inline-block; 
 
    transition: 200ms transform; 
 
} 
 

 
button:hover .outer { 
 
    transform: translateX(-50%); 
 
} 
 
button:hover .inner { 
 
    transform: translateX(50%); 
 
}
<ul> 
 
    <li> 
 
    <button> 
 
     <div class="outer"> 
 
     <div class="inner">Text 1</div> 
 
     </div> 
 
    </button> 
 
    </li> 
 
    <li> 
 
    <button> 
 
     <div class="outer"> 
 
     <div class="inner">Text Two</div> 
 
     </div> 
 
    </button> 
 
    </li> 
 
    <li> 
 
    <button> 
 
     <div class="outer"> 
 
     <div class="inner">Text Longer Three</div> 
 
     </div> 
 
    </button> 
 
    </li> 
 
</ul> 
 
<span class="center-line" />

+0

@Brat這很聰明!如果你能編輯你的答案並描述你在這裏做的一些主要訣竅,將是非常好的 - 將外部固定器一方轉化50%,另一方轉化50%。 – pie6k

0

也許JavaScript創建的字幕會幫助你在這裏? <marque>標記不是最好的方法,但也許js字幕會適合你。 Marquee (with optional start/stop buttons)

更新:據我所知,選框不會最好滿足您的需求,我用另一個解決方案使用margin-left並更改其值。

右按鈕的值取決於文本的長度,但您始終可以檢查寬度elements width並在代碼中進行調整。我已經更新在考慮變革的小提琴:final Fiddle

+0

你怎麼想用它來改變文本對齊? – pie6k

+0

我假設你想要通過整個div將文字動畫到一邊,但在評論之後它看起來像是不是這樣? – scx

+0

的確我想要,但我沒有找到你將如何知道什麼時候開始 - 停止跑馬燈或讓css寬鬆等等? – pie6k

2

text-align屬性不是動畫,所以你不能用CSS過渡,也不與jQuery動畫使用它..你最好的拍攝將是定位(使用百分比單位保留響應力)。

希望這有助於...

+0

好吧,我明白了。無論如何,由於容器寬度會改變,百分比對於響應率無幫助,但文本字體大小>文本本身的寬度將保持不變 – pie6k