文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

vue+elementUl实现展开和收起搜索功能

2023-01-16 18:00

关注

实现效果如下:

需求:

由于后台搜索选项有很多,影响页面美观,所以一进来要隐藏一部分搜索项,只保留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;
        },

到此这篇关于vue +elementUl实现展开和收起搜索功能的文章就介绍到这了,更多相关vue +elementUl展开和收起内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯