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单元格多列合并的实现
Nov 26 Vue.js
8个非常实用的Vue自定义指令
Dec 15 Vue.js
通过vue.extend实现消息提示弹框的方法记录
Jan 07 Vue.js
使用vue3重构拼图游戏的实现示例
Jan 25 Vue.js
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
vue路由实现登录拦截
Mar 24 Vue.js
Vue3中toRef与toRefs的区别
Mar 24 Vue.js
vue使用refs获取嵌套组件中的值过程
Mar 31 Vue.js
vue中div禁止点击事件的实现
Apr 02 Vue.js
vue 实现弹窗关闭后刷新效果
Apr 08 Vue.js
vue 数字翻牌器动态加载数据
Apr 20 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
2009/06/29 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
php批量删除cookie的简单实现方法
2015/01/26 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
postfixadmin忘记密码后的修改密码方法详解
2016/07/20 PHP
iOS10推送通知开发教程
2016/09/19 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
javascript的动态加载、缓存、更新以及复用(一)
2014/06/09 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
详谈commonjs模块与es6模块的区别
2017/10/18 Javascript
JavaScript程序设计高级算法之动态规划实例分析
2017/11/24 Javascript
详解如何使用babel进行es6文件的编译
2018/05/29 Javascript
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
2018/11/12 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
浅析Python中的多进程与多线程的使用
2015/04/07 Python
Python获取系统所有进程PID及进程名称的方法示例
2018/05/24 Python
python实现银联支付和支付宝支付接入
2019/05/07 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
应届生求职信
2014/05/31 职场文书
植树造林的宣传标语
2014/06/23 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
中学教师个人总结
2015/02/10 职场文书
个人年终总结范文
2015/03/09 职场文书