vue列表单项展开收缩功能之this.$refs的详解


Posted in Javascript onMay 05, 2019

展开效果?看红框区域

vue列表单项展开收缩功能之this.$refs的详解

收缩效果?看红框区域

 vue列表单项展开收缩功能之this.$refs的详解

接下来看代码逻辑

###template部分:已去除与本文不相关的功能代码

<li class="main-video"v-for="(item, index) of courseSubList" :key="item.id">
  <div class="audio-name">
    <div class="img-l">
      <span class="img-l-num">{{index+1}}</span>
      <span class="img-l-name">{{item.subName}}</span>
    </div>
    <div class="img-r" @click="showHide(index)" ref="arrow">
      <i class="iconfont"></i>
    </div>
  </div>
  <div class="audio-body" ref="child">
    <div class="body-l">
      <p class="body-l-num body-l-num-video">
        <i class="iconfont"></i>
      </p>
      <span class="body-l-name">{{item.fileName}}</span>
    </div>
    <div class="body-r">
      <i class="iconfont" @click="deletCourseSub(item.id)"></i>
    </div>
  </div>
</li>

###js部分:已去除与本文不相关的功能代码

data() {
	return {
		courseSubList: [], // 课程正文列表
	}
},
methods: {
  showHide(index) {
   if (this.$refs.child[index].style.display === 'none') {
    this.$refs.child[index].style.display = 'flex'
    this.$refs.arrow[index].style.transform = 'rotateX(0deg)'
   } else {
    this.$refs.child[index].style.display = 'none'
    this.$refs.arrow[index].style.transform = 'rotateX(180deg)'
   }
  },
  deletCourseSub(id) {
	  // 功能代码省略
  }
}

###分析过程:

  1. 分别给展开折叠的箭头加ref="arrow"属性;
  2. 分别给列表单项内容区最外层标签即本文的class="audio-body"的标签加ref=“child”;
  3. 再给箭头标签区域加个showHide(index)事件;
  4. 最后通过对应的index利用vue的ref属性改变对应的列表单项展开折叠;

以上所述是小编给大家介绍的vue列表单项展开收缩功能之this.$refs详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 导出数据到Excel(处理table中的元素)
Dec 18 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
Sep 18 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
Nov 06 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
Oct 14 Javascript
原生js实现键盘控制div移动且解决停顿问题
Dec 05 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
Feb 04 Javascript
Angular2利用组件与指令实现图片轮播组件
Mar 27 Javascript
详解Vue 2.0封装axios笔记
Jun 22 Javascript
jQuery操作DOM_动力节点Java学院整理
Jul 04 jQuery
vue使用自定义指令实现拖拽
Jan 29 Javascript
微信小程序实现多图上传
Jun 19 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
Sep 02 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
May 05 #Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
May 05 #Javascript
Vue 中如何正确引入第三方模块的方法步骤
May 05 #Javascript
详解vue的双向绑定原理及实现
May 05 #Javascript
Vue+Express实现登录注销功能的实例代码
May 05 #Javascript
Vue 递归多级菜单的实例代码
May 05 #Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
May 05 #Javascript
You might like
广播爱好者需要了解的天线知识
2021/03/01 无线电
PHP配置文件中最常用四个ini函数
2007/03/19 PHP
PHP Document 代码注释规范
2009/04/13 PHP
PHP 批量删除 sql语句
2009/06/05 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
2016/01/07 PHP
php 利用socket发送GET,POST请求的实例代码
2020/07/04 PHP
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
基于Vue实现微信小程序的图文编辑器
2018/07/25 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
微信小程序全选多选效果实现代码解析
2020/01/21 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
javascript实现简易数码时钟
2020/03/30 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
[56:58]VP vs Optic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
django中瀑布流写法实例代码
2019/10/14 Python
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
经贸韩语专业大学生职业规划
2014/02/14 职场文书
学校节能宣传周活动总结
2014/07/09 职场文书
大学毕业生管理学求职信
2014/09/01 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
2015年七一建党节活动方案
2015/05/05 职场文书
采购部年度工作总结
2015/08/13 职场文书
创业计划书之花店
2019/09/20 职场文书