vue 無縫滾動
阿新 • • 發佈:2022-04-18
1、建立
<!-- * @Descripttion: 無縫滾動 * @version: 0.0.1 * @Author: PengShuai * @Date: 2021-03-22 09:10:16 * @LastEditors: PengShuai * @LastEditTime: 2022-04-18 10:58:16 --> <template> <div class="wrapper"> <div class="roll-box"> <ul class="roll-list" :class="{ roll_top: rollConfig.animate }"> <li v-for="(item, index) in rollConfig.data" :key="index"> {{ item }} </li> </ul> </div> </div> </template>
2、方法
<script> export default { data() { return { // 滾動配置 rollConfig: { animate: false, data: ['1', '2', '3', '4', '5', '6', '7', '8', '9'], }, } }, mounted() { setInterval(this.showroll, 2000) }, methods: { showroll() { this.rollConfig.animate = true setTimeout(() => { this.rollConfig.data.push(this.rollConfig.data[0]) this.rollConfig.data.shift() this.rollConfig.animate = false }, 500) }, }, } </script>
3、樣式表
<style lang="scss" scoped> div, ul, li, span, img { margin: 0; padding: 0; display: flex; box-sizing: border-box; } .wrapper { width: 500px; height: 500px; } .roll-box { width: 100%; height: 100%; display: block; position: relative; width: 100%; height: 100%; overflow: hidden; .roll-list { display: block; width: 100%; height: 100%; position: absolute; top: 0; left: 0; li { height: 14.3%; box-sizing: border-box; padding: 2%; border-bottom: 1px solid #343433; display: flex; justify-content: space-between; position: relative; background: #0ff; } } .roll_top { transition: all 0.5s; margin-top: -13.5%; } } </style>