CSS3 Animation实现走马灯

CSS3 Animation实现走马灯轮播

前言:

实现轮播效果的插件数不胜数,但过于绚烂的效果也会占用较高的CPU,可能导致卡顿。今天演示一个用纯CSS实现横向轮播的流畅动画案例


实现:

实质就是在画布内利用animation动画,通过margin来控制内容的偏移量,隐藏不在画布内的元素,达到轮播的效果

HTML:

.wrapper:画布
.container:动画区
.content:每一帧动画

<div class="wrapper">
    <div class="container">
        <div class="content">
            <h1>1</h1>
        </div>
        <div class="content">
            <h1>2</h1>
        </div>
        <div class="content">
            <h1>3</h1>
        </div>
    </div>
</div>
css:
// 画布
.wrapper {
    display: flex;
    width: 300px;
    height: 300px;
    overflow: hidden;
    border: 3px solid #CCC;
}
// 动画区
// animation属性 名为switch 动画播放时长为9s、以ease-out方式进行播放、循环播放(infinite)
.container {
    animation: switch 9s ease-out infinite;
    display: flex;
    align-items: center;
    // 动画帧
    .content {
        float: left;
        width: 280px;
        height: 280px;
        margin-right: 20px;
        color: #FFF;
        &:nth-child(1) {
            background-color: #e4393c;
        }
        &:nth-child(2) {
            background-color: #c1e3ff;
        }
        &:nth-child(3) {
            background-color: #6de195;
        }
    }
}

// 创建了一个@keyframes命名为switch,区分三个阶段进行轮播
// 33.1%~33.5%, 67%~67.4%代表动画过度阶段
@keyframes switch {
    0%, 33.1% {
        margin-left: 10px;
    }
    33.5%, 67% {
        margin-left: -290px;
    }
    67.4%, 100% {
        margin-left: -590px;
    }
}

这样就实现啦 赶紧试试吧


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
走马灯动画(Carousel Animation)是一种常见的网页动画效果,它模拟了传统马车上的旋转木马或者走马灯效果。在网页中,走马灯动画通常用于展示一系列图片或内容,以吸引用户的注意力。 实现走马灯动画可以使用各种前端技术,包括HTML、CSS和JavaScript。以下是一个基本的实现思路: 1. HTML结构:创建一个容器元素,用于包裹所有要展示的内容。可以使用 `<div>` 元素作为容器,并在其中嵌套多个子元素作为每一帧的内容。 2. CSS样式:为容器元素和子元素添加合适的样式,设置宽度、高度、背景等属性。可以使用 `overflow: hidden;` 隐藏超出容器范围的内容。 3. JavaScript交互:通过JavaScript控制容器元素或子元素的位置和运动,实现动画效果。可以使用CSS动画、过渡效果、定时器等方法来实现。 下面是一个简单的示例代码片段,示了如何使用CSS和JavaScript实现走马灯动画: ```html <div class="carousel-container"> <div class="carousel-item">Item 1</div> <div class="carousel-item">Item 2</div> <div class="carousel-item">Item 3</div> <!-- 更多帧内容 --> </div> ``` ```css .carousel-container { width: 300px; height: 200px; overflow: hidden; } .carousel-item { width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; /* 更多样式属性 */ } ``` ```javascript // 使用JavaScript实现走马灯动画 var carouselContainer = document.querySelector('.carousel-container'); var carouselItems = document.querySelectorAll('.carousel-item'); var currentIndex = 0; function animateCarousel() { // 计算下一个要显示的帧索引 var nextIndex = (currentIndex + 1) % carouselItems.length; // 设置下一个帧的位置 carouselItems[nextIndex].style.left = '100%'; // 使用CSS动画实现平滑过渡 carouselItems[currentIndex].style.animation = 'slide-out 1s'; carouselItems[nextIndex].style.ani

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值