CSS3 transition 实现通知消息轮播条
(编辑:jimmy 日期: 2024/11/2 浏览:3 次 )
Vue 版本,拷贝到文件即可使用
<template> <!-- 轮播视图 --> <div id="carousel-view"> <!-- 轮播列表 --> <ul id="carousel-list-view" :class="{ 'carousel-animated':isAnimated }"> <li v-for="(item, index) in dataSource" :key="index">{{ item }}</li> </ul> </div> </template> <script> export default { data () { return { // 开启动画 isAnimated: false, // 轮播数据 dataSource: ['dzm', 'xyq', '啊啊'] } }, created () { // 开启定时器 setInterval(this.scroll, 1000) }, methods: { // 滚动动画 scroll () { // 开启动画 this.isAnimated = true // 倒计时动画时间 setTimeout(() => { // 将数组第一个元素添加到数组尾部 this.dataSource.push(this.dataSource[0]) // 移除数组第一个元素 this.dataSource.shift() // 关闭动画 this.isAnimated = false // 动画时间需要与 .carousel-animated 中设置的时间一致 }, 500) } } } </script> <style scoped> #carousel-view { width: 100%; height: 32px; background-color: red; overflow: hidden; } #carousel-list-view { margin: 0; padding: 0; list-style: none; } #carousel-list-view li { line-height: 32px; height: 32px; } .carousel-animated { transition: transform 0.5s; transform: translateY(-32px); } </style>
下一篇:纯 CSS 实现点击展开阅读全文功能