【不能动态设置大小、位置】问题解决
misakichan opened this issue · 1 comments
misakichan commented
首先感谢作者提供了这么好用的组件。
目前组件只支持初始化时加载x、y、w、h,不支持响应式的二次修改。
解决方案一:
给组件添加key,绑定到data,初始值0,在需要修改的时候,修改x、y、w、h之后,给key加一。
原理是key变化时,vue会重新渲染组件,
缺点:组件会重新加载,我这边是拖拽iframe,重新加载会影响业务流程,故采用方案二。
解决方案二:
通过直接修改组件style
以全屏窗口需求为例:
首先给组件设置ref为resize。
screen: _.throttle(function () {
this.$refs.resize.$el.style.top = "0px"
this.$refs.resize.$el.style.left = "0px"
const iframeContainer = this.$refs.resize.$refs.container
if (iframeContainer){
iframeContainer.style.width = window.innerWidth - 18 + 'px'
iframeContainer.style.height = window.innerHeight - 20 + 'px'
}
this.$nextTick(()=>{
this.currentHeight = window.innerHeight - 20
this.currentWidth = window.innerWidth
})
}, 800, {trailing: false}),