Vue, Resize 根据屏幕宽高比,实时判断是否添加class

本文介绍了一种方法,通过JavaScript计算窗口的宽高比,当页面高度不足时,动态调整CSS类以确保背景在小屏幕设备上完整显示。作者使用了`
`的`ratioKey`属性和`resize`事件监听器来实现在不同屏幕尺寸下的背景适应。
摘要由CSDN通过智能技术生成

需求:自适应屏幕页面

问题:在页面高度不足时,需要对样式进行判断、修改,保证页面背景的完整。

已试过CSS修改调试,无法实现背景补全,所以采取了以下方法。

【template】

<div class="className1" :class="ratioKey? 'className2': 'className3'"> </div>

【data】

这里用了1500px的页面作为参考,当它在高度不足800px时出现背景缺失的问题,所以宽高比的临界值设为 1500/800 = 1.875。

并且根据此数值来测试,当宽高比大于1.875时,页面是否都会出现背景缺失问题,如有其他情况再进行细调。

data() {
        return {
            ratioKey: window.innerWidth / window.innerHeight > 1.875 ? true : false,
    ...
}}

【resize设置】

mounted() {
        window.addEventListener('resize', this.handleResize, true);
},
beforeDestroy() {
        window.removeEventListener('resize', this.handleResize); // 移除绑定的事件
},

methods: {
    handleResize() {
        let that = this;
        const ratio = window.innerWidth / window.innerHeight; // 获取当前窗口宽高比
    
        // 这里可以根据窗口宽高比进行相应操作
        if(ratio > 1.875) {
            that.ratioKey = true
        } else {
            that.ratioKey = false
        }
    },

    
    ...
    
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值