代码来自GPT4o:国内官方直连GPT4o
<template><div class="container"><button class="butns" @click="toggleShowMore">{{ showAll ? '收回' : '显示更多' }}</button><transition-group name="slide-fade" tag="div" class="grid"><div v-for="(item, index) in displayedItems" :key="item" class="grid-item">{{ item }}</div></transition-group></div>
</template><script>
export default {data() {return {items: ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 5', 'Item 6', 'Item 7', 'Item 8', 'Item 9'],showAll: false};},computed: {displayedItems() {return this.showAll ? this.items : this.items.slice(0, 6);}},methods: {toggleShowMore() {this.showAll = !this.showAll;}}
};
</script><style scoped>
.butns {position: absolute;top: 100px;left: 0px;
}
.container {display: flex;flex-direction: column;align-items: center;
}.grid {display: grid;grid-template-columns: repeat(3, 1fr);gap: 10px;overflow: hidden;
}.grid-item {background-color: #f0f0f0;padding: 20px;text-align: center;border: 1px solid #ccc;
}button {margin-top: 20px;padding: 10px 20px;font-size: 16px;cursor: pointer;
}.slide-fade-enter-active, .slide-fade-leave-active {transition: all 0.5s ease;
}.slide-fade-enter, .slide-fade-leave-to {max-height: 0;opacity: 0;margin: 0;padding: 0;
}.slide-fade-enter-to, .slide-fade-leave {max-height: 200px; /* Adjust based on your content's height */opacity: 1;
}
</style>