使用css3实现文字横向滚动循环

html

<div class="remind-block">
   <div class="marquee-block">
     <div class="marquee">这是一段很长的滚动文字&nbsp;&nbsp;&nbsp;</div>
     <div class="marqueeT">这是一段很长的滚动文字&nbsp;&nbsp;&nbsp;</div>
   </div>
</div>

这里简单的阐述下,

  1. remind-block这个div是最外层盒子,没什么好说的。
  2. marquee-block用来播放循环动画的盒子,里面会放置两个元素。当然,只有一个是用来显示的,另一个则要负担上每次循环结束时的过度场景。

css关键动画

.remind-block {

    height: 30px;
    
    line-height: 30px;
    
    background-color: #fce9aa;
    
    color: #947334;
    
    position: relative;
    
    overflow: hidden;
    
    text-align: center;
    
    width: 100%;
    
    padding-right: 20px;
    
    z-index: 100;
    
    }
    
    .marquee-block{
    
    display: inline-block;
    
    width:100%;
    
    height: 100%;
    
    vertical-align: middle;
    
    overflow: hidden;
    
    box-sizing: border-box;
    
    padding-left: 15px;
    
    position: relative;
    
    }
    
    .marquee {
    
    animation: marquee 10s linear infinite;
    
    white-space: nowrap;
    
    position: absolute;
    
    }
    
    .marqueeT {
    
    animation: marqueeT 10s linear infinite;
    
    white-space: nowrap;
    
    position: absolute;
    
    }
    
    @keyframes marquee {
    
    0% { left: 0; }
    
    100% { left: -105%;}
    
    }
    
    @keyframes marqueeT {
    
    0% { left: 105%; }
    
    100% { left: 0; }
    
    }
    
    .remind-block span{
    
    border-bottom: 1px solid #947334;
    
    font-weight:bold;
    
    }
    
    .remind-block img{
    
    height:20px;
    
    position: absolute;
    
    right: 2px;
    
    top: 5px;
    
    }

可以看到,关键的两个动画:

  1. marquee这个动画是负责结尾过度,在真正的文字到达最左边时,他的动画结束会回到最右边,这时候如果没有这个就会显得很突兀。
  2. marqueeT这个就是真正的显示文字动画。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值