Vue界面添加收缩和展开导航栏图标按钮

添加一个图标按钮:
<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'//边栏旁边的图标也变回收缩
    }

  }

}

效果如图:

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

这样就好啦 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值