vue2.0 可折叠列表 v-for循环展示的实例


Posted in Javascript onSeptember 07, 2018

先上一张效果图:

vue2.0 可折叠列表 v-for循环展示的实例

以前用angularjs操作基本上都是要取到每个列表的id再循环判断是不是当前点击的列表来显示折叠。

今天在这个项目 https://github.com/IFmiss/vue-music 上看到操作很简单,并没有如此复杂。赶紧记录一下:

折叠列表单独做一个组件,图标是用的iconfont中生成的css链接:myMusicSheetList.vue

<template>
 <div class="sheet-list">
 <div class="sheet-header" @click="toggleSheet">
 <i class="icon iconfont icon-enter" ref="toggleicon"></i>
 <span class="sheet-header-span">{{data_item.name}} <span> ({{data_item.num}}) </span></span>
 <i class="sheet-header-i icon iconfont icon-setup" @click.stop="showSheetMenu(data_item.name)"></i>
 </div>

 <div v-if="showSheets" class="sheet-content" v-for="i in data_item.details">
 <div class="sheet-content-image">
 <img :src="i.details_image" width="50" height="50" style="padding: 5px;overflow: hidden">
 </div>
 <div class="sheet-content-middle">
 <p style="">{{i.details_name}}</p>
 <p style="margin-top: 10px;font-size: 14px;color: #666">{{i.details_num}}首歌曲</p>
 </div>
 <i class="icon iconfont icon-switch" @click.stop="showSheetMenu()"></i>
 </div>
 </div>
</template>
<script>
export default {
 components:{},
 props: {
 item:{
 type:Object
 }
 },
 data(){
 return{
 showSheets:false,
 data_item:{}
 }
 },
 methods:{

//向右的小图标动画
 toggleSheet:function(index){
 console.log(this.$refs);
 this.$refs.toggleicon.style.transform = !this.showSheets ? 'rotate(90deg)' : 'rotate(0)'
this.showSheets = !this.showSheets
 },
 showSheetMenu:function(){
 alert(1111);
 }
 },
 created(){
 this.data_item = this.item;
 },
}
</script>
<style scoped>
.sheet-list{
clear: both;
}
.sheet-header{
height: 30px;background: #e5e5e5;position: relative;
}
.sheet-header i:nth-child(1){
line-height: 30px;position:absolute;
left:10px;
color:#666;
transition:all 0.5s;
}
.sheet-header-i{
line-height: 30px;position: absolute;right: 10px;
}
.sheet-header-span{
left: 40px;font-size: 14px;position:absolute;line-height: 30px;
}
.sheet-content{
position: relative;width: 100%;display: flex;
}
.sheet-content i{
font-size: 26px;position: absolute;right: 10px;top: 50%;transform:translate(0,-50%);
}
.sheet-content-image{
width: 60px;float: left;text-align: center;
}
.sheet-content-middle{
position: relative;width: 100%;border-bottom: 1px solid #e5e5e5;padding-bottom: 10px;margin-top: 10px;margin-left: 10px;
}
.sheet-content-middle p{
font-size: 16px;width: 70%;color: #666;text-overflow:ellipsis;white-space: nowrap;overflow:hidden;
}
</style>

主页面调用组件:home.vue

<template>
 <div class="home">

<sheet-list v-for="(item,index) in sheetList" :item="item"></sheet-list>
 </div>
</template>

<script>

import myMusicSheetList from './../../components/myMusicSheetList.vue'

export default {
 components:{'sheet-list':myMusicSheetList},
 data () {
 return {
 sheetList:[{
 id:1,
 name:'我创建的歌单',
 num:2,
 details:[{
 details_id:1,
 details_name:'我喜欢的音乐',
 details_num:30,
 details_image:'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1521191038714&di=117b8f1d83605767e8a7faf01cb9be9b&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimgad%2Fpic%2Fitem%2F8435e5dde71190efc4376916c41b9d16fcfa602f.jpg'
 },{
 details_id:2,
 details_name:'在欧洲田园般的乡村上骑单车',
 details_num:15,
 details_image:'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1521190642670&di=67822ec270160c1fb21e67d49e95a97f&imgtype=0&src=http%3A%2F%2Fpic30.nipic.com%2F20130615%2F2861027_140302450156_2.jpg'
 }]
 },{
 id:2,
 name:'我收藏的歌单',
 num:2,
 details:[{
 details_id:1,
 details_name:'这应该是你比较喜欢听的歌曲了',
 details_num:10,
 details_image:'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3679981803,1758706610&fm=27&gp=0.jpg'
 },{
 details_id:2,
 details_name:'欧美风格的音乐,安静的听',
 details_num:2,
 details_image:'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2406805917,4090912031&fm=27&gp=0.jpg'
 }]
 }]
 }
 },
 methods: {
 
 },
 mounted:function(){
 
 }
}
</script>
<style scoped>
</style>

如果不能运行请检查import 路径是否正确。

以上这篇vue2.0 可折叠列表 v-for循环展示的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
写js时遇到的一些小问题
Dec 06 Javascript
js Function类型
Dec 04 Javascript
node.js中的fs.symlinkSync方法使用说明
Dec 15 Javascript
jQuery实现宽屏图片轮播实例教程
Nov 24 Javascript
jquery拖拽排序简单实现方法(效果增强版)
Feb 16 Javascript
JQuery解析XML数据的几个简单实例
May 18 Javascript
基于AngularJS前端云组件最佳实践
Oct 20 Javascript
javascript基于原型链的继承及call和apply函数用法分析
Dec 15 Javascript
你不知道的 javascript【推荐】
Jan 08 Javascript
可能被忽略的一些JavaScript数组方法细节
Feb 28 Javascript
keep-alive不能缓存多层级路由菜单问题解决
Mar 10 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
Aug 06 Javascript
Js中使用正则表达式验证输入是否有特殊字符
Sep 07 #Javascript
vue.js+element-ui动态配置菜单的实例
Sep 07 #Javascript
详解npm 配置项registry修改为淘宝镜像
Sep 07 #Javascript
vue 点击按钮实现动态挂载子组件的方法
Sep 07 #Javascript
关于JavaScript中高阶函数的魅力详解
Sep 07 #Javascript
npm配置国内镜像资源+淘宝镜像的方法
Sep 07 #Javascript
对类Vue的MVVM前端库的实现代码
Sep 07 #Javascript
You might like
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
详解提高使用Java反射的效率方法
2019/04/29 PHP
phpwind放自动注册方法
2006/12/02 Javascript
struts2 jquery 打造无限层次的树
2009/10/23 Javascript
jQuery编写widget的一些技巧分享
2010/10/28 Javascript
JS高级笔记
2011/07/13 Javascript
如何使用json在前后台进行数据传输实例介绍
2013/04/11 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
vuejs指令详解
2017/02/07 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
protractor的安装与基本使用教程
2017/07/07 Javascript
jQuery选择器之子元素选择器详解
2017/09/18 jQuery
js定时器实现倒计时效果
2017/11/05 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
layer.open 按钮的点击事件关闭方法
2018/08/17 Javascript
nodejs中express入门和基础知识点学习
2018/09/13 NodeJs
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
解决vue+webpack项目接口跨域出现的问题
2020/08/10 Javascript
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
python中wx将图标显示在右下角的脚本代码
2013/03/08 Python
Numpy之random函数使用学习
2019/01/29 Python
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
优秀党支部书记事迹材料
2014/05/29 职场文书
毕业生找工作自荐书
2014/06/30 职场文书
警察正风肃纪剖析材料
2014/10/16 职场文书
党员作风建设自查报告
2014/10/23 职场文书
银行竞聘报告范文
2014/11/06 职场文书
病人家属写给医院的感谢信
2015/01/23 职场文书
2015年人事专员工作总结
2015/04/29 职场文书
老兵退伍感言
2015/08/03 职场文书
环保建议书范文
2015/09/14 职场文书
谢师宴学生答谢词
2015/09/30 职场文书