king2088 / vue-3d-loader

VueJS and threeJS 3d viewer plugin
https://king2088.github.io/vue-3d-loader-docs
MIT License
242 stars 40 forks source link

vue2 flex布局窗口尺寸变化,模型不会自适应变化 #28

Closed tudan110 closed 1 year ago

tudan110 commented 1 year ago

版本:1.2.12

flex 布局,控制模型所在 dom 的宽度(左侧 flex: 1, 右侧 flex: 0.41)

自己写 resize 监听父级 dom,dom只会变大,不会缩小,改成 百分比 布局,可以解决。

但是我看源码里有 resize 的监听,为啥不生效呢

image

king2088 commented 1 year ago

版本:1.2.12 flex 布局 flex布局

flex 布局,控制模型所在 dom 的宽度(左侧 flex: 1, 右侧 flex: 0.41)

自己写 resize 监听父级 dom,dom只会变大,不会缩小,改成 百分比 布局,可以解决。

但是我看源码里有 resize 的监听,为啥不生效呢

image

请尝试在父元素的flex布局中增加overflow: hidden;看看能不能解决问题,经过我的测试应该是可以的。 前提是不要设定vue-3d-loader组件的width

.main{
  display: flex;
}
.left-3d{
  flex: 1;
  overflow: hidden;
}
.right-menu{
  flex: 0.5;
}

vue-3d-loader的使用

<template>
  <div class="main">
    <div class="left-3d">
      <vue3dLoader
        filePath="/models/collada/stormtrooper/stormtrooper.dae"
        :cameraPosition="{ x: 10, y: 0, z: -10 }"
      />
    </div>
    <div class="right-menu">asdasdasdsadsadasdasdasdas</div>
  </div>
</template>
tudan110 commented 1 year ago

ok,谢谢,试了一下,是我自己没控制好。 没有给外层 div 设置宽高,给 vue3dLoader 组件设置了宽高属性,导致组件不会自适应宽高的