iview modal 拖拽出界
时间: 2023-08-30 10:10:17 浏览: 132
如果iview modal被拖拽出界,可以尝试在modal组件上绑定drag事件,然后在drag事件的回调函数中,判断modal是否超出了可视区域,如果超出了,就把modal的位置重置到可视区域内。
以下是一个简单的实现示例:
```html
<Modal
v-model="visible"
@drag="handleDrag"
>
<!-- modal内容 -->
</Modal>
```
```javascript
methods: {
handleDrag(e) {
const modal = e.target
const rect = modal.getBoundingClientRect()
const { clientWidth, clientHeight } = document.documentElement
const { left, right, top, bottom } = rect
if (left < 0) {
modal.style.left = '0px'
}
if (right > clientWidth) {
modal.style.left = `${clientWidth - rect.width}px`
}
if (top < 0) {
modal.style.top = '0px'
}
if (bottom > clientHeight) {
modal.style.top = `${clientHeight - rect.height}px`
}
}
}
```
在drag事件的回调函数中,获取modal的位置和大小信息(通过getBoundingClientRect()方法),然后判断modal是否超出了可视区域,如果超出了,就通过修改modal的left和top样式属性,将modal重置到可视区域内。
阅读全文