vue 可拖动调整宽度的侧边栏

  • 使用vue变量来控制侧边栏宽度
  • 不受窗口大小影响

在这里插入图片描述

<template>
  <div class="page">
    <div class="top">顶部导航</div>
    <div id="box">
      <div id="left">
        主界面
      </div>
      <div id="resize"></div>
      <div id="right" v-bind:style="{ width: detailWidth + 'px' }">
        侧边栏 width: {{ detailWidth }}
      </div>
      <p></p>
    </div>
  </div>
</template>

<script>
export default {
  name: "page",
  props: {
    msg: String
  },
  data: function() {
    return {
      detailWidth: 200
    };
  },
  methods: {
    dragControllerDiv: function() {
      // 保留this引用
      let data = this;
      let resize = document.getElementById("resize");
      resize.onmousedown = function(e) {
        // 颜色改变提醒
        resize.style.background = "#818181";
        let startX = e.clientX;
        resize.left = resize.offsetLeft;
        document.onmousemove = function(e) {
          // 计算并应用位移量
          let endX = e.clientX;
          let moveLen = endX - startX;
          startX = endX;
          data.detailWidth -= moveLen;
        };
        document.onmouseup = function() {
          // 颜色恢复
          resize.style.background = "";
          document.onmousemove = null;
          document.onmouseup = null;
        };
        return false;
      };
    }
  },
  mounted() {
    this.dragControllerDiv();
  }
};
</script>

<style scoped>
#box {
  width: 100%;
  height: 400px;
  position: relative;
  overflow: hidden;
  display: flex;
}
.top {
  width: 100%;
  height: 80px;
  background: #ffe0c6;
}
#left {
  height: 100%;
  background: #ffc5c1;
  flex: 1;
}

#resize {
  width: 5px;
  height: 100%;
  cursor: w-resize;
}

#right {
  height: 100%;
  background: #ffc0cb;
}
</style>
  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
你想了解如何实现一个画布侧边栏Vue 组件,是吗?那我可以给你一些思路和建议。 首先,你需要确定侧边栏的功能和布局。画布侧边栏通常用于放置一些工具、选项和设置,以便用户可以轻松地对画布进行操作和调整。因此,你需要考虑以下几个方面: 1. 侧边栏宽度和位置:通常侧边栏会位于画布的左侧或右侧,并且需要有一个合适的宽度,以便用户可以看到所有的内容。 2. 侧边栏的内容:你需要确定侧边栏需要包含哪些组件,比如按钮、输入框、下拉框等等。这些组件需要按照一定的布局方式进行排列,以便用户可以快速找到并使用。 3. 交互和响应:侧边栏需要响应用户的操作,比如点击按钮、输入文本等等。你需要为每个组件添加对应的事件处理程序,并确保侧边栏的状态和画布的状态能够同步更新。 接下来,你可以开始编写侧边栏组件的代码了。以下是一些建议: 1. 使用 Vue 的组件化开发:将侧边栏拆分为多个子组件,每个组件负责一个特定的功能或布局。 2. 使用 Vuex 管理状态:将侧边栏的状态存储在 Vuex 中,以便多个组件之间可以共享和修改状态。 3. 使用插槽和作用域插槽:使用插槽可以使侧边栏更具有灵活性,可以根据需要插入不同的内容。使用作用域插槽可以将父组件的数据传递给子组件,以便子组件可以自行渲染内容。 4. 使用 CSS 样式:侧边栏的样式需要根据实际需要进行调整,你可以使用 CSS 样式来设置侧边栏的外观和布局。 最后,你可以在 Vue 应用程序中使用你的侧边栏组件了。将组件添加到应用程序的模板中,并设置需要的属性和事件处理程序即可。希望这些建议能够帮助你编写出一个功能丰富、易于使用的画布侧边栏 Vue 组件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值