用vue2在宽400px高600px的div里面用v-for渲染list: [ { name: 'csw1', event: 'hhhhh' }, { name: 'csw2', event: 'hhhhh' }, { name: 'csw3', event: 'hhhhh' }, { name: 'csw4', event: 'hhhhh' }, { name: 'csw5', event: 'hhhhh' }, { name: 'csw6', event: 'hhhhh' }, { name: 'csw7', event: 'hhhhh' }, { name: 'csw8', event: 'hhhhh' }, { name: 'csw9', event: 'hhhhh' }, { name: 'csw10', event: 'hhhhh' },, ],每条数据放在宽400px高200px的盒子里,放的顺序是从上到下,且将溢出的部分隐藏,然后做一个从下往上的轮播,速度是每5秒600px,轮播无限循环且无缝轮播
时间: 2023-04-09 18:04:10 浏览: 77
详解vuejs之v-for列表渲染
可以使用以下代码实现:
```html
<template>
<div class="container">
<div class="list">
<div class="item" v-for="(item, index) in list" :key="index">
<div class="name">{{ item.name }}</div>
<div class="event">{{ item.event }}</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
list: [
{ name: 'csw1', event: 'hhhhh' },
{ name: 'csw2', event: 'hhhhh' },
{ name: 'csw3', event: 'hhhhh' },
{ name: 'csw4', event: 'hhhhh' },
{ name: 'csw5', event: 'hhhhh' },
{ name: 'csw6', event: 'hhhhh' },
{ name: 'csw7', event: 'hhhhh' },
{ name: 'csw8', event: 'hhhhh' },
{ name: 'csw9', event: 'hhhhh' },
{ name: 'csw10', event: 'hhhhh' },
],
currentIndex: 0,
itemHeight: 200,
containerHeight: 600,
speed: 600,
intervalId: null,
};
},
mounted() {
this.startCarousel();
},
methods: {
startCarousel() {
this.intervalId = setInterval(() => {
this.currentIndex++;
if (this.currentIndex >= this.list.length) {
this.currentIndex = 0;
}
this.$refs.list.style.transform = `translateY(-${this.currentIndex * this.itemHeight}px)`;
}, 5000);
},
},
};
</script>
<style scoped>
.container {
width: 400px;
height: 600px;
overflow: hidden;
}
.list {
position: relative;
width: 100%;
height: auto;
transition: transform 0.5s ease-in-out;
}
.item {
width: 400px;
height: 200px;
overflow: hidden;
}
.name {
font-size: 20px;
font-weight: bold;
}
.event {
font-size: 16px;
color: #666;
}
</style>
```
在上面的代码中,我们使用了一个 `list` 数组来存储数据,然后使用 `v-for` 指令将数据渲染到页面上。每个数据都被放在一个宽度为 400px,高度为 200px 的盒子里面。我们使用了一个 `container` 容器来限制显示区域的大小,并将溢出的部分隐藏。
为了实现轮播效果,我们使用了一个 `currentIndex` 变量来记录当前显示的数据的索引。然后使用 `setInterval` 函数来定时更新 `currentIndex` 变量,并将 `list` 列表向上移动一定的距离,从而实现轮播效果。
最后,我们使用了一些 CSS 样式来美化页面,包括设置字体大小、颜色、背景色等。
阅读全文