vue element-ul实现展开和收起功能的实例代码


Posted in Vue.js onNovember 25, 2020

实现效果如下:

vue element-ul实现展开和收起功能的实例代码

vue element-ul实现展开和收起功能的实例代码

  需求:

由于后台搜索选项有很多,影响页面美观,所以一进来要隐藏一部分搜索项,只保留1行,

点击【展开搜索】按钮的时候才显示全部,点击【收起搜索】按钮又收起部分,保留1行。

需求分析:

由于不太好控制行数,因为不同屏幕尺寸展示的1行的内容并不相同(不考虑移动端),所以考虑用显示高度来控制。

解决思路:

所以这里通过控制搜索区域的高度来实现展开和收起搜索功能。

页面一进来是收起搜索状态,控制搜索区域的高度为120px,超出部分隐藏。

点击展开搜索的时候,调整搜索区域的高度为”auto"

 定义变量:showAll控制状态

代码解析:

<el-button type="text" style="margin-left:10px" id="closeSearchBtn" @click="closeSearch">
     {{word}}
     <i :class="showAll ? 'el-icon-arrow-up ': 'el-icon-arrow-down'"></i>
    </el-button>

当showAll为false的时候,即搜索区域处于收起状态,此时将按钮文字变为“展开搜索”,图标变为向下(el-icon-arrow-down)

当showAll为ture的时候,即搜索区域全部展开了,将按钮文字变成“收起搜索”,图标变成向上(el-icon-arrow-up)

data(){
  return{
   showAll:true;//是否展开全部
 
  }
}
computed: {
  word: function() {
   if (this.showAll == false) {
    //对文字进行处理
    return "展开搜索";
   } else {
    return "收起搜索";
   }
  }
 },

mounted()里调用closeSearch函数,页面一进来将this.showAll设为false,即处于收起状态。所以data里最初给showAll定义的时候设为true.

给搜索区域的ID设为“searchBox”  ,

当showAll为false的时候,设置搜索区域高度为120px,否则高度自动。

mounted() {
  /**
   * 收起搜索
   */
  this.$nextTick(function() {
   this.closeSearch();
  });
 },
 methods:{
  closeSearch() {
   this.showAll = !this.showAll;
   var searchBoxHeght = document.getElementById("searchBox");
   if (this.showAll == false) {
    searchBoxHeght.style.height = 60 + "px";
   } else {
    searchBoxHeght.style.height = "auto";
   }
  }
 }

CSS中关键的设置不要忘记。

#searchBox {
 overflow: hidden;
}

到此这篇关于vue element-ul实现展开和收起功能的实例代码的文章就介绍到这了,更多相关vue element-ul展开和收起内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
解决vue页面刷新,数据丢失的问题
Nov 24 Vue.js
vue表单验证之禁止input输入框输入空格
Dec 03 Vue.js
vue实现购物车的小练习
Dec 21 Vue.js
vue.js watch经常失效的场景与解决方案
Jan 07 Vue.js
vue watch监控对象的简单方法示例
Jan 07 Vue.js
Vue包大小优化的实现(从1.72M到94K)
Feb 18 Vue.js
vue如何批量引入组件、注册和使用详解
May 12 Vue.js
SSM VUE Axios详解
Oct 05 Vue.js
Vue如何清空对象
Mar 03 Vue.js
vue如何实现关闭对话框后刷新列表
Apr 08 Vue.js
vue实力踩坑之push当前页无效
Apr 10 Vue.js
vue实现省市区联动 element-china-area-data插件
Apr 22 Vue.js
在Vue中使用mockjs代码实例
Nov 25 #Vue.js
Vue3配置axios跨域实现过程解析
Nov 25 #Vue.js
Vue使用Element实现增删改查+打包的步骤
Nov 25 #Vue.js
vue + el-form 实现的多层循环表单验证
Nov 25 #Vue.js
vue打开其他项目页面并传入数据详解
Nov 25 #Vue.js
Vue开发中常见的套路和技巧总结
Nov 24 #Vue.js
浅析VUE防抖与节流
Nov 24 #Vue.js
You might like
php将session放入memcached的设置方法
2014/02/14 PHP
如何让CI框架支持service层
2014/10/29 PHP
微信API接口大全
2015/04/15 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
2017/06/05 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
2019/10/09 PHP
PHP Web表单生成器案例分析
2020/06/02 PHP
JSQL  一个 web DB 的封装
2010/05/05 Javascript
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
表格单元格交错着色实现思路及代码
2013/04/01 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
跟我学习javascript的异步脚本加载
2015/11/20 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
2017/08/14 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
2017/10/27 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
2018/01/25 jQuery
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
jQuery使用bind动态绑定事件无效的处理方法
2018/12/11 jQuery
Python迭代器定义与简单用法分析
2018/04/30 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
Python操作远程服务器 paramiko模块详细介绍
2019/08/07 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
康帕斯酒店预订:Compass Hospitality(支持中文)
2018/08/23 全球购物
2014年党务公开实施方案
2014/02/27 职场文书
高三学习决心书
2014/03/11 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
建国大业观后感
2015/06/01 职场文书
2016年“12.3”国际残疾人日活动总结
2016/04/01 职场文书
Python中tqdm的使用和例子
2022/09/23 Python