添加一个图标按钮:
<div style="flex: 1; font-size: 18px">
  <span :class="collapseBtnClass" //其中绑定了一个class collapseBtnClass就是收缩按钮的名称
style="cursor: pointer" @click="collapse"></span>
</div>

@click="collapse"当点击他的时候触发一个函数collapse

按钮叫什么名称呢就在下面的

export default {
 。。。
  data(){
    const item = {
      date: '2016-05-02',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1518 弄'
    };
  return{
    tableData: Array(10).fill(item),
  msg:"hello 铁甲小宝",
    collapseBtnClass:'el-icon-s-fold',//这里写想要的按钮的名称el-icon-s-fold
    isCollapse:false
    }
  },

collapseBtnClass:'el-icon-s-fold',//这里写想要的按钮的名称el-icon-s-fold

你需要的按钮可以到element官网的icon图标去直接复制

传送门:组件 | Element 

当然想要按钮起作用需要在函数中写collapse()函数,如图:

总结:想要添加图标就先将class绑定到span,并利用@click绑定触发函数的名称,

再到return里面写上class名称,

再在methods里面完善触发函数的内容。

效果如图

虽然点击图标有收缩,但是还会显示字体,正确的情况应该是只有三个图标没有任何字体的。当然,我发现我这个背景颜色也跟着被收缩了,好像也有问题。还有一个问题就是收缩之后右边的宽度没变。右边的宽度应该增加的。

所以将aside宽度变成动态的。

第一步:我们本身的aside是

<el-aside width:"100px" style="background-color: rgb(238, 241, 246); ">

变成动态的即:

<el-aside :width="sideWidth+'px'" style="background-color: rgb(238, 241, 246); ">

此时宽度是由sidewidth决定的。

第二步:在return中写上sidewidth的初始值,我们假定初始值为200px,如图(最后一排):

第三步:在methods里面写上函数值:

函数collapse()中定义了点击图标时触发这个函数 ,这个函数将isCollapse的值由false取反变为true。也可以由true变为false(第二次点击图标时),if语句表示当this.collapse变为true,即收缩的时候sidewidth的值变为64.此时64则变为了导航栏的宽度。

效果如图:

点击图标之后效果如图:

可以看到只有图标啦!

但是二次点击图标之后并不能还原,而是这样: 

出现了问题。

此时我们考虑到:当点击收缩之后,收缩的图标应该变成展开的图标,点击展开图标之后,边栏会展开。于是我们到element中找到展开图标。

传送门 :组件 | Element

 

实现这个效果只需要在methods函数里面改就行了,如图:

methods:{
  collapse(){//点击收缩图标时触发这个函数
    this.isCollapse=!this.isCollapse//取反,以前是false就变成true
    if (this.isCollapse){//当iscollapse为true时
      this.sideWidth=64//边栏宽度变成64
      this.collapseBtnClass='el-icon-s-unfold'//图标变成展开的图标
    }
    else{//否则。iscolapse为false即展开的情况下
      this.sideWidth=200//边栏宽度变回200
      this.collapseBtnClass='el-icon-s-fold'//边栏旁边的图标也变回收缩
    }

  }

}

效果如图:

点击收缩图标之后,图标变成了展开,再次点击展开图标之后效果如图:

这样就好啦 

GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891 Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐