关于vue中height属性需要根据屏幕高度动态调整但是设为百分比不生效的解决办法

关于vue中height属性需要根据屏幕高度动态调整但是设为百分比不生效的解决办法

在Vue中项目中遇到height属性设为百分比但是不生效,却需要根据屏幕高度动态调整heignt属性的解决办法,使用vue watch监听,直接贴代码。
1.设置屏幕高度变量
在这里插入图片描述
2.在mounted计算属性中给屏幕高度变量赋值
在这里插入图片描述
3.使用watch监听屏幕高度变化并调整自己想要改变div中的高度
在这里插入图片描述
这种方式仅针对于那种height属性百分比不生效,但是用具体的例如height:500px生效的结果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue 可以结合 CSS3 的 `vh` 单位和 JavaScript 获取屏幕高度来实现根据屏幕高度适配。 具体操作如下: 1. 在 CSS 使用 `vh` 单位来置元素高度。`vh` 单位是指相对于视口高度百分比单位,例如 `height: 50vh` 表示元素高度为视口高度的一半。 2. 在 Vue 组件使用 `mounted` 生命周期钩子获取屏幕高度,并将其存储到组件的数据。 ```javascript mounted() { this.screenHeight = window.innerHeight; }, data() { return { screenHeight: 0 } } ``` 3. 在模板使用数据绑定将获取到的屏幕高度应用到需要适配的元素上。 ```html <div :style="{ height: screenHeight + 'px' }">需要适配的元素</div> ``` 这样就可以根据屏幕高度实现适配了。需要注意的是,当屏幕大小变化时,应该使用 `resize` 事件重新获取屏幕高度并更新数据。 ### 回答2: Vue可以根据屏幕高度自适应,主要通过CSS和响应式计来实现。 首先,在Vue组件,可以通过使用计算属性来获取屏幕高度。可以使用window对象的innerHeight属性来获取浏览器窗口的高度,并将其存储在data属性。 ```js export default { data() { return { screenHeight: 0 } }, computed: { styleObject() { return { height: `${this.screenHeight}px` } } }, mounted() { this.screenHeight = window.innerHeight window.addEventListener('resize', () => { this.screenHeight = window.innerHeight }) } } ``` 然后,在模板可以使用计算属性的值来动态置样式,从而实现根据屏幕高度进行适配。 ```html <template> <div :style="styleObject"> <!-- 内容 --> </div> </template> ``` 上述代码,我们在mounted钩子函数监听窗口的resize事件,并在事件回调函数更新屏幕高度的值。这样,无论窗口大小如何改变,屏幕高度都能被动态更新。 最后,将计算属性styleObject应用在需要适配的元素上,样式对象高度会根据屏幕高度进行动态调整。 这样,Vue就可以根据屏幕高度来适应不同的备,保证页面在不同屏幕上的显示效果。 ### 回答3: 在Vue根据屏幕高度适配可以通过几种不同的方法来实现。一种常见的方法是使用CSS样式来动态调整元素的高度。可以在Vue组件使用计算属性或绑定样式来实现这个功能。 首先,可以使用计算属性来获取屏幕高度。可以通过在Vue实例的`created`或者`mounted`生命周期钩子获取屏幕高度,并将其保存为一个计算属性。例如: ``` computed: { screenHeight() { return window.innerHeight; } } ``` 然后,可以在模板使用绑定样式来根据屏幕高度调整元素的样式。可以使用`:style`绑定来置元素的高度。例如: ``` <div :style="{ height: screenHeight + 'px' }"> 这个元素的高度将根据屏幕高度而定 </div> ``` 这样,当窗口的大小改变时,元素的高度将会自动调整以适应屏幕高度。 另外,还可以使用第三方库,例如`vue-screen-size`,来更方便地获取屏幕高度。这个库可以在Vue组件直接使用`screenHeight`属性来获取屏幕高度。例如: ``` import {screenHeight} from 'vue-screen-size'; export default { data() { return { screenHeight: screenHeight, }; }, }; ``` 然后在模板同样可以根据屏幕高度置元素的样式。例如: ``` <div :style="{ height: screenHeight + 'px' }"> 这个元素的高度将根据屏幕高度而定 </div> ``` 以上是两种常用的在Vue根据屏幕高度适配的方法,根据具体的项目需求选择适合的方式来实现。总的来说,通过获取屏幕高度并将其与元素样式绑定,可以实现在Vue根据屏幕高度适配的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值