首页 > 其他分享 >vue兄弟通信--窗口随动

vue兄弟通信--窗口随动

时间:2022-11-24 15:11:49浏览次数:51  
标签:vue bar openRight -- Bus 随动 0.5 transition right

效果:左右窗口移动到隐藏后,旁边的小窗口会随着移动贴边。

知识点:兄弟组件通信

1.新建Bus.js文件

Bus.js内容:

import Vue from 'vue';  
export default new Vue(); 
2.引入文件 import Bus from "@/common/js/Bus.js"; (右侧边栏与工具页面都需要加) 3.使用 右侧栏页面:
<div
    class="container"
    :class="openRight ? 'show_bar' : 'hide_bar'"
  >
    <!-- 开关 -->
    <div class="handle" @click="handleClick()">
      <i
        class="iconfont icon_jiantou"
        :class="!openRight ? 'bar_0' : 'bar_180'"
      ></i>
    </div>
//其他代码 </div>
 openRight: false, //右边栏开启开关
 methods: {
    //右侧栏合起开关
    handleClick() {
      this.openRight = !this.openRight;
      //发送给地图工具栏,侧边栏状态
      Bus.$emit("openRight", this.openRight);
    }
 }
.container {
  position: absolute;
  top: 0px;
  width: 388px;
  height: 100%;
  display: inline-block;
  box-sizing: border-box;

  .handle {
    position: absolute;
    top: calc(50% - 76px);
    right: 388px;
    width: 14px;
    height: 76px;
    border-radius: 10px 0px 0px 10px;
    display: inline-block;
    line-height: 76px;
    padding: 0 2px;
    box-sizing: border-box;
    cursor: pointer;
    i {
      font-size: 11px;
      display: inline-block;
    }
  }
  .bar_180 {
    transform: rotate(180deg);
    transition: all 0.5s;
  }
  .bar_0 {
    transform: rotate(0deg);
    transition: all 0.5s;
  }
}
.show_bar {
  right: 0px !important;
  transition: right 0.5s;
}
.hide_bar {
  right: -388px !important;
  transition: right 0.5s;
}

工具栏页面:

<div
    class="toolbar"
    :class="openRight ? 'toolbar_move' : ''"
  >
     工具栏内容
 </div>
openRight: false, //右边栏开启开关
mounted() {
    //接收侧边栏状态
    Bus.$on("openRight", openRight => {
      this.openRight = openRight;
    });
},
.toolbar{
  border-radius: 4px;
  font-size: 20px;
  position: absolute;
  top: 20px;
  right: 20px;
  transition: right 0.5s;
}
.toolbar_move {
  right: 408px;
  transition: right 0.5s;
}

 

核心代码: (接收!)  Bus.$on("openRight", openRight => {       this.openRight = openRight;     }); (发送!)  Bus.$emit("openRight", this.openRight);  

标签:vue,bar,openRight,--,Bus,随动,0.5,transition,right
From: https://www.cnblogs.com/ruyijiang/p/16921894.html

相关文章

  • java 去除多余逗号方法
    java去除多余逗号方法//测试数据Stringdata=",6G+128G,标准版,,时光静紫,"//将组装好的数据分割String[]fmtSplit=data.split(",");//利用stream流过滤到......
  • XAF Blazor 中使用 Blazor 组件
    前言文档标题是不是感觉有点奇怪,但实际我们在XAFBlazor中使用Blazor组件是很繁琐的,我们需要将Blazor组件封装成属性编辑器(PropertyEditor),再用非持久化对象去承载它。当我......
  • Centos7.6升级到Centos7.9并升级内核
    较新版本的Kubernetes部署要求Centos7.5以上版本,否则会出现kubelet无法启动、harbor端口访问异常等问题,同时要求内核版本要升级到4.4.x以上。一.升级系统版本1)查看当前ce......
  • matlab误差传播和算法稳定性
    算法描述:    方案二:递推公式结果:y(1)=0.212647           y(2)=0.071838           y(3)=0.065374           y(4)=0.046157   ......
  • Model对象
    Mode对象负责在控制器和展现数据的视图之间传递数据。实际上,放倒Model属性中的数据将会赋值到ServletResponse的属性中,这样视图就能找到它们了。@GetMapping("/design")pub......
  • Lombok库和实体类表单校验--Bean Validation API
    它能够在运行时动态生成getter,setter方法,以及equals()、hashCode()、toString()这些方法;类级别的@Data注解就是由Lombok提供的,它会告诉Lombok生成所缺失的方法,同时还会生成......
  • springboot的 application-dev.yml配置
    server:port:8888servlet:context-path:/pshdhxcompression:enabled:truemime-types:application/javascript,applic......
  • 插入排序之直接插入排序,折半插入,希尔排序详解和特点
    插入排序引申了三种:直接插入排序,折半插入排序,希尔排序一、直接插入排序直接插入排序排序方法: 1、查找出L(i)在L[1……i-1]中的位置k。2、将L[k……i-1]所有元素全部后移......
  • css元素显示模式
    ......
  • Linux用户和用户组管理
    一、用户配置文件  用户管理简介:     linux把通过把用户分为三个基本组,user,group,other来分配基本的权限  用户通过/etc/passwd用过用户名来获取用户的uid,通过......