vue element-ul实现展开和收起功能的实例代码
作者:吴小花的博客 发布时间:2024-05-29 22:48:16
标签: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;
}
新方法:
html:
:style="{
height: showMoreSearch
? `${searchboxHeight - searchboxOtherHeight}px`
: `${searchboxDefaultHeight}px`
}">
<el-button
class="more-arrow"
type="text"
title="更多查询条件"
@click="toggleSearch(1)">
{{ searchTitle }}
<i class="el-icon-arrow-down more-arrow"></i>
</el-button>
data:
showMore: false, // 是否下拉显示更多
searchTitle: "显示全部"
methods:
// 显示更多(rows为下拉的行数,根据下拉行数计算高度)
toggleSearch (rows = 1) {
this.showMoreSearch = !this.showMoreSearch;
this.searchTitle = this.showMoreSearch ? "收起" : "显示全部";
this.searchboxHeight = this.showMoreSearch ? rows * 64 + 200 : 200;
},
来源:https://blog.csdn.net/weixin_39089928/article/details/110073249


猜你喜欢
- 如何用php实现APP消息推送现在有很多的消息推送厂商,比如阿里云的消息推送,极光推送,融云的消息推送。他们的原理都是把sdk内置在app里
- 禁用GPU设置# 在import tensorflow之前import osos.environ['CUDA_VISIBLE_DEV
- keys()方法返回在字典中的所有可用的键的列表。语法以下是keys()方法的语法:dict.keys()参数 &nb
- 本文实例为大家分享了python3判断url链接是否为404的具体代码,供大家参考,具体内容如下import pymysqlimport t
- 1. 前言所谓的逃逸分析(Escape analysis)是指由编译器决定内存分配的位置吗不需要程序员指定。函数中申请一个新的对象如果分配在
- 前言因近期进行时间序列分析时遇到了数据预处理中的缺失值处理问题,其中日期缺失和填充在网上没有找到较好较全资料,耗费了我一晚上工作时间,所以下
- python的便利性,使得如今许多软件开发者、黑客都开始使用python打包成exe的方式进行程序的发布,这类exe有个特点,就是可以使用反
- 在 .NET Framework 2.0中,ConfigurationManager类新增了两个属性AppSe
- 我想大家在用Sql2005一般都是.NET2005自带的SQL Server 2005是SQL Server2005 Express版本的,
- 1|0 背景由于项目需要,每个月的历史存量数据需要进行一个归档和备份操作,以及一些日志表需要进行一个明细字段清除,让mysql数据库磁盘节省
- 方法一:使用临时表。首先创建一个与sp_who相同字段的临时,然后用insert into 方法赋值,这样就可以select这个临时表了。具
- 我们平时导入第三方模块的时候,一般使用的是 import 关键字,例如:import scrapyfrom scrapy.spider im
- 我们已经知道,null 没有任何的属性值,并且无法获取其实体(existence)值。所以 null.property 返回的是错误(err
- 本系列专栏写作将采用首创的问答式写作形式,快速让你学习到 OpenCV 的初级、中级、高级知识。6. 在 Python OpenCV 针对图
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 6 - Manipulating HTML通过Mo
- 这篇论坛文章主要介绍了SQL Server 2005数据库镜像的配置脚本,详细内容请大家参考下文:SQL Server 2005数据库镜像配
- 最近在研究Hacker News API时遇到一个HTTPS问题。因为所有的Hacker News API都是通过加密的HTTPS协议访问的
- 新建图像文件后选Channels面板,新建Alpha1通道:输入文字; &nbs
- 本文实例讲述了python通过apply使用元祖和列表调用函数的方法。分享给大家供大家参考。具体实现方法如下:def my_fuc(a, b
- 在Windows系统下,如何在cmd中输入命令来运行.py文件呢?一. 设置环境变量想要在cmd中运行python文件,必须要设置pytho