自定义拖拽条,上下、左右拖拽

<div class="midResize" id="midResize" title="收缩侧边栏" @mousedown.stop="startResize" v-if="showbottomResize">
//上下clientY  左右 clientX
startResize(event) {
      this.isResizing = true;
      const containerHeight = this.$refs.midTop.clientHeight; // 获取容器高度
      const startTopHeight = parseFloat(this.topDivHeight);
      const startY = event.clientY;
      // 在移动和松开鼠标时进行相应的操作
      const handleMouseMove = (moveEvent) => {
        if (!this.isResizing) return;
        const deltaY = (moveEvent.clientY - startY) / (containerHeight) * 100;
        // 计算新的高度
        //newBottomHeight  根据自己项目实际情况,我这边是有侧边栏占了36px
        let newBottomHeight = 36 /(containerHeight) *100
        let newTopHeight = startTopHeight + deltaY;
        // 应用最小高度限制
        if (newTopHeight < this.minPercentageHeight) {
          newTopHeight = this.minPercentageHeight;
        } else if (newTopHeight > 96) {
          newTopHeight = 100 - newBottomHeight;
        }
        // 更新高度
        this.topDivHeight = newTopHeight + '%';
        this.bottomDivHeight = 100 - newTopHeight + '%';
      };
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vuedraggable默认情况下只支持上下动,而不支持左右动。然而,你可以通过一些额外的样式和布局属性来实现左右动的效果。一种常见的方法是使用flex布局,并将元素的宽度设置为固定值,这样当元素超出容器宽度时会自动换行。这样,你就可以通过动改变元素在容器内的位置,实现左右动的效果。 另外,你也可以考虑使用Sortable库来实现左右动功能。Sortable是一个功能强大的JavaScript库,可以实现各种排序效果。你可以基于vuedraggable和Sortable库来编写自定义动排序组件,满足你的需求。 请注意,你需要额外编写一些逻辑来处理选中状态和全选功能。 总结起来,要实现vuedraggable的左右动功能,你可以通过flex布局和样式来实现,或者考虑使用Sortable库来编写自定义动排序组件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Vue draggable实现上下左右组件功能](https://blog.csdn.net/m0_71125105/article/details/131850165)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Vue 基于 vuedraggable 实现选中、、排序效果](https://download.csdn.net/download/weixin_38565818/13129478)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [vuedraggable组件布局一个列表上下左右动](https://blog.csdn.net/OnismYY/article/details/120779227)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值