首页 > 其他分享 >vue实现展开收起

vue实现展开收起

时间:2022-11-07 18:12:33浏览次数:81  
标签:vue val dataList 超出 color 收起 展开 expand

通过设置css超出换行,监听是否超出所设置的值,重新对数据插入标识,并刷新dom树实现。
image
image

<div class="class-datas">
	<p class="datas-title">可排课专业:</p>
	<p :class="`${item.show&&!item.expand?'datas':'data'}`" :ref="'listExpand'+index">
		{{item.subject_names}}
		<span class="datas-foot" v-if="item.expand&&item.show" @click.stop="expand(index)">
			收起
			<van-icon name="arrow-up" style="margin-left:2px" />
		</span>
	</p>
	<p class="datas-foot" v-if="!item.expand&&item.show" @click.stop="expand(index)">
		展开
		<van-icon name="arrow-down" style="margin-left:2px" />
	</p>
</div>
setExpand(){ //判断是否需要显示展开、收起(设置超出换行 监听时候超出35px,超出则展示)
    this.dataList=this.dataList.map((r,index)=>{
       if(this.$refs['listExpand'+index][0].clientHeight>35){
          r.show = true //插入标识
         if(r.expand){
              r.expand = true
         }else{
              r.expand = false
         }
       }
        return r
       })
      this.$forceUpdate()
},
expand(val){ // 切换展开收起状态
   this.dataList[val].expand = !this.dataList[val].expand
   this.$forceUpdate()
},
.datas{
                    height: 40px;
                    line-height: 40px;
                    overflow: hidden;
                    text-overflow:ellipsis;
                    white-space:nowrap;
                    color: #333333;
                    .datas-foot{
                        min-width: 80px;
                        color:#2368ED
                    }
                }
                .data{
                    color: #333333;
                }

标签:vue,val,dataList,超出,color,收起,展开,expand
From: https://www.cnblogs.com/chaplink/p/16866891.html

相关文章

  • 拖拽功能 vue + 移动端
    1.  在components里面创建一个公共组件,dragMove.vue<!--拖拽滑动效果--><template><divid="item_box"@click="goMove"@touchstart="down"@touchmove="move"......
  • vue2.0引入css文件后报错
    vue2.0的main.js中引入css文件后报错。报错示例:UncaughtError:Moduleparsefailed:/Users/**/Desktop/vue2/node_modules/.1.0.0-rc.5@element-ui/lib/theme-default/i......
  • vue项目中定义全局变量、全局函数
    在vue项目中,我们经常会遇到要在多个页面组件中都要使用的一个变量或者函数,比如说需要配置的ip地址,在生产环境和测试环境不一样就需要修改。因此我们可以定义一个全局变量来......
  • Vue构建一个项目
    vue2.0推荐开发环境Homebrew1.0.6(Mac)Node.js6.7.0npm3.10.3webpack1.13.2vue-cli2.4.0Atom1.10.2构建vue项目1、下载node.js下载地址:https://nodejs.org/en/检查是......
  • Vue 3.x 的 script setup 语法糖用法详解
    由于原来vue3中的setupCompositionAPI语法太过于冗长麻烦,官方又出了这么个语法糖,非常的好用了。这里介绍一些常用的语法:一、如何开始使用?1、需要关闭vetur插件,安装Vol......
  • vue组件间的通讯(10种方法)【重要】(待补充。。。)
    1.props/$emitprops主要用于父组件传递数据给子组件,父==>子。Vue自定义事件父组件可以在使用子组件的地方直接用v-on来监听子组件触发的事件。即父组件中使用v-on绑定自......
  • 【前端开发】如何将vue组件转成自定义指令使用,(在自定义指令中使用element ui组件或常
    //导入组件importVuefrom'vue'importXxTipsfrom'packages/basic/xx-tips/src/XxTips.vue'//自定义指令Vue.directive('tip',{bind(el,binding){el.......
  • Vue-Router
    Vue-Router目录Vue-Router1.路由的安装与基本使用2.带参的动态路由3.页面导航4.关于路由的命名5.关于路由传参null6.路由导航守卫7.动态路由1.路由的安装与基本使用......
  • Vue中做table分页
    <template> <divclass="wrap">  <!--<el-card>-->   <el-table:data="tableData"borderstripestyle="width:100%">    <el-table-column......
  • vue-计算属性和监视属性的区别和使用方法
    转载于:https://blog.csdn.net/qq_38110274/article/details/121242203 作者:我是天之涯  一、总述computed和watch都是vue框架中的用于监听数据变化的属性。 二......