2014-04-07 112 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