1.纯 CSS 创作一个按钮文字滑动特效 + 弹幕(残缺)

原文地址1# 视频演示如何用纯 CSS 创作一个按钮文字滑动特效

扩展后地址:https://scrimba.com/c/cJkzMfd

HTML代码:

<html>
    <head>
        <link rel="stylesheet" href="index.css">
    </head>
    <body>
        <div class="animation">唉,没有啥新想法添加。。。</div>
        <div class="box">
            <span data-text="B">B</span>
            <span data-text="U">U</span>
            <span data-text="T">T</span>
            <span data-text="T">T</span>
            <span data-text="O">O</span>
            <span data-text="N">N</span>
        </div>
        <script src="index.pack.js"></script>
        <script>
           /* alert("唉,没有啥新想法添加。。。"); */
        </script>
    </body>
</html>

css代码:

.animation{
   position: absolute; 
   top:0px;
   /* 让字体位于窗口顶部右边外围 这里的数据是死的*/
   right: -210px;
   /* 
        规定动画的名称
        规定动画的时长
        规定动画的次数
    */
   animation:mymove 10s infinite;
   animation-delay:0s;

    /*Safari and Chrome 兼容*/
    -webkit-animation:mymove 10s infinite;
    -webkit-animation-delay:0s;
}
@keyframes mymove{
    from {
        left:100%;
    }
    to {
        left:-200px;
    }
    
}
@-webkit-keyframes mymove /*Safari and Chrome*/{
    from {left:100%;}
    to {left:-200px;}
    
}

/* 按钮居中 */
html, body {
    margin: 0;
    padding: 0;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    /* 对于超出的内容隐藏 */
    overflow: hidden;
}
/* 设置按钮的尺寸和文字样式 */
.box {
    width: 200px;
    height: 60px;
    border: 2px solid black;
    text-align: center;
    font-size: 30px;
    line-height: 60px;
    font-family: sans-serif;
}
/* 按钮的每个字母都设置为行内块元素,以便单独设置动效 */
.box span {
    display: inline-block;
    color: blue;
}
/*把字母交错地显示在按钮容器之外,第奇数个元素显示在上,第偶数个元素显示在下:*/

.box span:nth-child(odd) {
    /* Y轴向上平移自身高度单位 */
    transform: translateY(-100%);
}

.box span:nth-child(even) {
    transform: translateY(100%);
}
/* 用伪元素为每个字母增加一个副本:*/
.box span::before {
    /* attr 的解说 http://www.runoob.com/cssref/pr-gen-content.html */
    content: attr(data-text);
    position: absolute;
    color: red;
}
/* 让伪元素的字母也交错显示,位置与其原始元素相对:*/

.box span:nth-child(odd)::before {
    transform: translateY(100%);
}
.box span:nth-child(even)::before {
    transform: translateY(-100%);
}
/* 为按钮增加鼠标划过样式,设置緩动时间,使其有动画效果:*/
.box:hover span {
    transform: translateY(0);
}
.box span {
    transition: 1s;
}

猜你喜欢

转载自www.cnblogs.com/FlyingLiao/p/10087371.html