vue实现手风琴效果(vue手风琴效果代码)

需求:

1、每个按钮都能点击展开和收起功能

2、所有按钮下的内容只展示一个,(A内容展示时,点击B按钮,B内容展示,A内容收起)

<style>
	button{ margin-bottom: 30px }
</style>
<div id="app">
    	<ul>
    		<li v-for="(list,index) in lists" :key="index">
    			{{list.id}}
    			<button @click="isShow(list.id)"  > {{idx==list.id?'收起':'展开'}}</button>
    			<div v-show="idx==list.id">{{list.name}}</div>
    		</li>
    	</ul>       
    </div>
<script src="http://cdn.staticfile.org/vue/2.6.11/vue.js"></script>

 

vue实现手风琴效果(vue手风琴效果代码)

<script>
	new Vue({
		el: '#app',
		data() {
			return {
				lists:[
					{id:1,name:"aa"},
					{id:2,name:"bb"},
					{id:3,name:"cc"}
				],
				idx:-1,
			}
		},
		methods: {
			isShow(id) {
			
				// 如果用户点击的时候,当前判断展开的标识idx,是-1,的时候,那说明,用户要展开,那么就把id赋给idx ,标识,这样用户就展开了
				if (this.idx == -1) {
					this.idx = id;
				} else if (this.idx == id) {//如果用户点击的id 和上次点击的id一样的时候,那就说明,用户点击的是上一次点击展开变成收起的按钮那行
					this.idx = -1;
				} else {//如果用户点击的id和标识idx不相等,那么说明用户点击了其他想要展开的行
					this.idx = id;
				}
			
				// 简化
				// if(this.idx == id){
				// 	this.idx = -1;
				// }else{
				// 	this.idx = id;
				// }
			}
		},
		
	})

	
</script>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论