vuejs数据超出单行显示更多,点击展开剩余数据实例


Posted in Javascript onMay 05, 2019

说下我在工作中遇到的这个需求

1:页面上的菜单选项,选项内容是后台接口返回的数据,现在的需求是当选项的内容超出一行,在这行的右面显示更多,点击更多,显示剩下的选项的内容

看下效果图

vuejs数据超出单行显示更多,点击展开剩余数据实例

这是展开的效果图

 vuejs数据超出单行显示更多,点击展开剩余数据实例

下面先看下我的html部分代码

<div :class="bussinessType?'show':'hidde'">
					<dl>
						<dt>业务类型:</dt>
						<dd ref="bussinessTypeRef">
							<a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" name="" 
							@click="getchildMenu($event)" class="active">全部</a>
							<a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" :name="item.code" v-for="item in projectType" 
							@click="getchildMenu($event)">{{item.name}}</a>
						</dd>
						<i class="unfold" @click="bussinessType = !bussinessType" 
						v-show="bussinessHeight>40">
			            {{ bussinessType ? '收起' : '更多'}}
			            <Icon :type="bussinessType?'chevron-down':'chevron-up'" ></Icon>
	          </i>
					</dl>
				</div>

说下原理show就是展开的时候使用的样式名称,hide是显示一行是使用的样式(主要就是控制容器高度)

.show{
        height: auto;
        border-bottom: 1px solid #ebebeb;
    }
    .hidde{
        height: 40px;
        overflow: hidden;
        border-bottom: 1px solid #ebebeb;
    }

vuejs数据超出单行显示更多,点击展开剩余数据实例

这是我展示的菜单的部分,主要的思路是看这部分的高度是不是超出一行的高度,如果是超出一行的高度,则让dl外的div默认使用hide的样式

那么问题来了,怎么知道展示菜单的dd部分的高度超出一行了呢?

这就需要使用vuejs的watch来实现了

首先,watch监听ref是bussinessTypeRef的组件的高度(内容多的话自然dd容易会被撑高),这时候与一行的高度(我这里设置的是40)作比较,如果超出,就让更多的文字按钮显示出来。下面是监听dd内容高度的watch方法

projectType: function () {
	      this.$nextTick(function(){
	        let cur = this.$refs['bussinessTypeRef'];
	        if(cur){
	        	this.bussinessHeight = cur.clientHeight;
	        }
	      });
	    },

这时候更多文字按钮显示,我们就控制dl外层的div容器,让该容器使用hide的样式,点击更多的时候,让控制显示更多的变量变为相反的值,这样让收起显示出来,更多消失,同时让外层的div容器使用show的样式。这样一来就实现了文字超出一行显示更多,点击收起的交互效果。

下面附上完整的代码供参考

<div :class="bussinessType?'show':'hidde'">
					<dl>
						<dt>业务类型:</dt>
						<dd ref="bussinessTypeRef">
							<a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" name="" 
							@click="getchildMenu($event)" class="active">全部</a>
							<a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" :name="item.code" v-for="item in projectType" 
							@click="getchildMenu($event)">{{item.name}}</a>
						</dd>
						<i class="unfold" @click="bussinessType = !bussinessType" 
						v-show="bussinessHeight>40">
			            {{ bussinessType ? '收起' : '更多'}}
			            <Icon :type="bussinessType?'chevron-down':'chevron-up'" ></Icon>
	          </i>
					</dl>
				</div>
 
 
  // 行业
    businessType: function () {
      this.$nextTick(function(){
        let cur = this.$refs['industryRef'];
        if(cur){
        	this.industryHeight = cur.clientHeight;
        }
      });
    },
.show{
		height: auto;
		border-bottom: 1px solid #ebebeb;
	}
	.hidde{
		height: 40px;
		overflow: hidden;
		border-bottom: 1px solid #ebebeb;
	}
	.list-filter {
		position: relative;
		margin-bottom: 20px;
		font-size: 14px;
	}
	
	.list-filter dl {
		overflow: hidden;
	}
	
	.list-filter dt {
		float: left;
		font-weight: 400;
		height: 40px;
		line-height: 40px;
	}
	
	.list-filter dd {
		margin-left: 30px;
		float: left;
		width: 85%;
		line-height: 40px;
		
	}
	.unfold{
		font-size: 14px;
  color: #00A971;
  cursor: pointer;
  font-style: normal;
  vertical-align: middle;
  display: inline-block;
  height: 40px;
  line-height: 40px;
	}
	.list-filter a {
		color: #333;
		display: inline-block;
		margin-right: 20px;
		padding: 0 5px;
		text-decoration: none;
		line-height: 2em;
		z-index: 0;
	}

以上所述是小编给大家介绍的vuejs数据超出单行显示更多,点击展开剩余数据详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
showModelessDialog()使用详解
Sep 07 Javascript
fckeditor 获取文本框值的实现代码
Feb 09 Javascript
jquery图片延迟加载 前端开发技能必备系列
Jun 18 Javascript
jquery插件orbit.js实现图片折叠轮换特效
Apr 14 Javascript
Prototype框架详解
Nov 25 Javascript
jQuery添加options点击事件并传值实例代码
May 18 Javascript
Vue中android4.4不兼容问题的解决方法
Sep 04 Javascript
Vue自定义全局Toast和Loading的实例详解
Apr 18 Javascript
VUE 自定义组件模板的方法详解
Aug 30 Javascript
layui上传图片到服务器的非项目目录下的方法
Sep 26 Javascript
微信小程序实现多选框功能的实例代码
Jun 24 Javascript
JavaScript获取时区实现过程解析
Sep 24 Javascript
Vue+Express实现登录状态权限验证的示例代码
May 05 #Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
May 05 #Javascript
浅谈Node 异步IO和事件循环
May 05 #Javascript
vue的列表交错过渡实现代码示例
May 05 #Javascript
微信小程序上传多图到服务器并获取返回的路径
May 05 #Javascript
详解如何在vue项目中使用layui框架及采坑
May 05 #Javascript
详解小程序input框失焦事件在提交事件前的处理
May 05 #Javascript
You might like
php命令行(cli)模式下报require 加载路径错误的解决方法
2015/11/23 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
JS中==与===操作符的比较
2009/03/21 Javascript
jquery插件制作简单示例说明
2012/02/03 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
不要使用jQuery触发原生事件的方法
2014/03/03 Javascript
调用jQuery滑出效果时闪烁的解决方法
2014/03/27 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
2015/06/04 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
浅析node连接数据库(express+mysql)
2015/11/30 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
2016/12/17 Javascript
tab栏切换原理
2017/03/22 Javascript
Javascript中八种遍历方法的执行速度深度对比
2017/04/25 Javascript
jqueryUI tab标签页代码分享
2017/10/09 jQuery
vue使用keep-alive实现数据缓存不刷新
2017/10/21 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
vue内置指令详解
2018/04/03 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
解决layui富文本编辑器图片上传无法回显的问题
2019/09/18 Javascript
vue同个按钮控制展开和折叠同个事件操作
2020/07/29 Javascript
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
【python】matplotlib动态显示详解
2019/04/11 Python
python numpy实现rolling滚动案例
2020/06/08 Python
python 读取.nii格式图像实例
2020/07/01 Python
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
美国领先的水果篮送货公司和新鲜水果供应商:The Fruit Company
2018/02/13 全球购物
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
机电专业毕业生推荐信
2013/11/10 职场文书
法学毕业生自我鉴定
2014/01/31 职场文书
反腐倡廉标语
2014/06/24 职场文书
2014年英语教师工作总结
2014/12/03 职场文书
python基础入门之字典和集合
2021/06/13 Python