鼠标拖动改变div高度

4 篇文章 0 订阅

1.如下图,在拖动的div上绑定鼠标事件,id=eagleMapContainer是拖动时需要改变高度的div

在这里插入图片描述

2.下面是方法

if (!this.open_status) {
        return
      }
      var targetDiv = document.getElementById('eagleMapContainer')
      var targetDivHeight = targetDiv.offsetHeight
      // clientY是该表高度,也可以取clientX改变宽度
      var startY = e.clientY
      document.onmousemove = function(e) {
        e.preventDefault()
        var distY = Math.abs(e.clientY - startY)
        if (e.clientY < startY) {
          targetDiv.style.height = targetDivHeight + distY + 'px'
        }
        if (e.clientY > startY) {
          targetDiv.style.height = (targetDivHeight - distY) + 'px'
        }
        // 最大高度,也可以通过css  max-height设置
        if (parseInt(targetDiv.style.height) >= 700) {
          targetDiv.style.height = 700 + 'px'
        }
      }
      document.onmouseup = function() {
        document.onmousemove = null
      }
    }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要实现鼠标拖动改变div列宽和行高,你可以使用JavaScriptCSS来完成。下面是一种实现方式: 1. 首先,在HTML中创建一个包含多个div的容器,每个div代表一个列或行。例如,创建一个id为"container"的div容器,并在其中添加一些子div。 ```html <div id="container"> <div class="column"></div> <div class="column"></div> <div class="column"></div> </div> ``` 2. 在CSS中设置容器和列的样式。设置列的宽度和高度,以及鼠标光标样式。 ```css #container { display: flex; } .column { flex: 1; min-width: 100px; min-height: 100px; border: 1px solid black; cursor: col-resize; } ``` 3. 在JavaScript中添加事件监听器,以便在鼠标拖动改变列的宽度和行的高度。 ```javascript var columns = document.querySelectorAll('.column'); var isResizing = false; var lastDownX = 0; var newWidth = 0; columns.forEach(function(column) { column.addEventListener('mousedown', function(e) { isResizing = true; lastDownX = e.clientX; newWidth = column.offsetWidth; }); column.addEventListener('mousemove', function(e) { if (!isResizing) return; var widthChange = e.clientX - lastDownX; newWidth = newWidth + widthChange; column.style.width = newWidth + 'px'; }); column.addEventListener('mouseup', function() { isResizing = false; }); }); ``` 通过以上代码,你可以在鼠标拖动改变每个div列的宽度。同样的原理也适用于改变行的高度,只需适当调整CSSJavaScript即可。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值