纯CSS实现简易的无缝滚动效果

本文将介绍通过强大的CSS中的animation来实现无缝滚动动画,思路来源于JS的动画方式。
1.给要使用动画的元素添加animation属性,并设置相关参数和动画方案@keyframes。
2.相同的某个元素复制2份。
3.动画逻辑是:2个相同的元素,父容器的宽度是1680px,当第1个元素向左偏移840px完成后,瞬间复原位置,利用视觉差来实现无缝滚动的效果。

图1:
图2:
直接上代码:

html:

<div class="box1-wrapper">
    <div class="box1">
        <ul class="img-list">
            <li class="img-item">1</li>
            <li class="img-item">2</li>
            <li class="img-item">3</li>
            <li class="img-item">4</li>
        </ul>
        <ul class="img-list">
            <li class="img-item">1</li>
            <li class="img-item">2</li>
            <li class="img-item">3</li>
            <li class="img-item">4</li>
        </ul>
    </div>
</div>

css:

.box1-wrapper {
    width: 840px;
    height: 200px;
    margin: 50px auto 0;
    overflow: hidden;
    background-color: darkgray;
}
.box1 {
    width: 1680px;
    height: 200px;
    overflow: hidden;
    background-color: darkgoldenrod;
    font-size: 0;
}
.box1:hover .img-list{
    animation-play-state: paused;
    -webkit-animation-play-state: paused;
}
.img-list {
    display: inline-block;
    width: 840px;
    height: 200px;
    overflow: hidden;
    font-size: 0;
    background-color: coral;
    animation: imagesLoop 10s linear 1s infinite normal;
}
.img-item {
    display: inline-block;
    width: 200px;
    height: 200px;
    margin-right: 10px;
    /* background-image: url('qcx.png'); */
    background-size: 100%;
    background-repeat: no-repeat;
    background-color: darkcyan;
    font-size: 20px;
    text-align: center;
    line-height: 200px;
    cursor: pointer;
    color: red;
}
@keyframes imagesLoop {
    0% {
        transform: translateX(0px);
    }
    100% {
        transform: translateX(-840px);
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值