首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不改变文本大小的情况下动画每个字母

如何在不改变文本大小的情况下动画每个字母
EN

Stack Overflow用户
提问于 2015-08-15 12:05:21
回答 2查看 869关注 0票数 0

我正努力使每一个字母在悬停时变得更大。我得到了动画,但我想摆脱整个句子移动。我试着使用绝对定位,但没成功。

这是小提琴

HTML:

代码语言:javascript
复制
<div>
    <h1>
       <span id='let-1'>S</span><span id='let-2'>a</span><span id='let-3'>m</span><span id='let-4'>p</span><span id='let-5'>l</span><span id='let-6'>e</span>
       <span id='let-7'>T</span><span id='let-8'>e</span><span id='let-9'>x</span><span id='let-10'>t</span>
    </h1>
</div>

CSS:

代码语言:javascript
复制
        h1 {
            text-align: center; 
        }
        span {
            font-size: 3em;
        }
        div:hover span {
            animation: .3s letters forwards;
        }
        #let-2 {
            animation-delay: .1s;
        }
        #let-3 {
            animation-delay: .2s;
        }
        #let-4 {
            animation-delay: .3s;
        }
        #let-5 {
            animation-delay: .4s;
        }
        #let-6 {
            animation-delay: .5s;
        }
        #let-7 {
            animation-delay: .6s;
        }
        #let-8 {
            animation-delay: .7s;
        }
        #let-9 {
            animation-delay: .8s;
        }
        #let-10 {
            animation-delay: .9s;
        }
        @-webkit-keyframes letters {
            from,to {font-size: 3em;}
            50% {font-size: 4em;}
        }
        @keyframes letters {
            from,to {font-size: 3em;}
            50% {font-size: 4em;}
        }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-15 12:11:39

而不是动画font-size属性,您可以动画transform: scale()

代码语言:javascript
复制
h1 {
            text-align: center;
            
        }
        span {
            font-size: 3em;
            display: inline-block;
        }
        div:hover span {
            animation: .3s letters forwards;
        }
        #let-2 {
            animation-delay: .1s;
        }
        #let-3 {
            animation-delay: .2s;
        }
        #let-4 {
            animation-delay: .3s;
        }
        #let-5 {
            animation-delay: .4s;
        }
        #let-6 {
            animation-delay: .5s;
        }
        #let-7 {
            animation-delay: .6s;
        }
        #let-8 {
            animation-delay: .7s;
        }
        #let-9 {
            animation-delay: .8s;
        }
        #let-10 {
            animation-delay: .9s;
        }
        @-webkit-keyframes letters {
            from,to {transform: scale(1);}
            50% {transform: scale(1.3);}
        }
        @keyframes letters {
            from,to {transform: scale(1);}
            50% {transform: scale(1.3);}
        }
代码语言:javascript
复制
<div>
    <h1>
        <span id='let-1'>S</span><span id='let-2'>a</span><span id='let-3'>m</span><span id='let-4'>p</span><span id='let-5'>l</span><span id='let-6'>e</span>
     <span id='let-7'>T</span><span id='let-8'>e</span><span id='let-9'>x</span><span id='let-10'>t</span>
    </h1>
</div>

票数 6
EN

Stack Overflow用户

发布于 2015-08-15 12:19:10

只需在float: left元素上添加span即可。但是,您需要通过获取h1的宽度并生成margin: auto来对其进行居中。

小提琴

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32024534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档