Element UI 走马灯高度自适应

本文介绍了如何在Element UI的走马灯组件中实现高度自适应,避免固定高度设置。通过监听窗口宽度变化,计算图片高度与网站宽度的百分比,设置走马灯高度为宽度的0.22倍,从而达到高度动态调整的效果。提供了一个简洁的VUE实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Element UI走马灯中,通过属性height来设置高度,但是设置就是死的,不能自适应。要自适应需要监控窗口宽度的变化。

网上别人分享的太复杂了,这儿有简单的方法实现高度自适应。

首先,确定图片的最大高度

我的图片最大高度为270px,屏幕宽度超过container的宽度,这个值就不能再变化了。

首先计算图片高度和网站宽度的百分比,例如,内容区域最大宽度为1180px,图片高度为270px,270/1180约0.22

那么,只要宽度被改变,高度就变化为宽度的0.22倍即可

data中声明hdgd属性,作为高度变量

VUE添加mounted事件:

mounted() {
        let that = this;
        window.onresize = function windowResize() {
          // 通过捕获系统的onresize事件触发我们需要执行的事件
          var w = window.innerWidth
          var h = 270
          if (w > 1180) {
            h = 270
          } else {
            h = 0.22 * w
          }
          that.hdgd = h + 'px'
          console.l
要实现走马灯高度自适应,可以使用以下步骤: 1. 首先需要确定走马灯的容器,可以使用 `ref` 或者 `DOM` 元素的方式来获取容器的高度。 2. 然后在走马灯的 `CSS` 样式中设置 `height` 为 `100%`,这样就能让走马灯高度自适应容器的高度。 3. 接着,在走马灯的 `ts` 代码中监听容器的高度变化,可以使用 `ResizeObserver` 或者 `window.onresize` 来监听容器高度变化。 4. 当容器高度变化时,重新计算走马灯高度,并设置为容器的高度。 以下是一个简单的实现示例: ```typescript import { Component, ElementRef, OnInit, ViewChild } from '@angular/core'; @Component({ selector: 'app-carousel', template: ` <div #container class="carousel-container"> <div class="carousel" [style.height]="height + 'px'"> <!-- 走马灯内容 --> </div> </div> `, }) export class CarouselComponent implements OnInit { @ViewChild('container') containerRef!: ElementRef<HTMLDivElement>; height = 0; constructor() {} ngOnInit(): void { // 初始化走马灯高度 this.setHeight(); // 监听容器高度变化 const observer = new ResizeObserver(() => { this.setHeight(); }); observer.observe(this.containerRef.nativeElement); } setHeight() { const containerHeight = this.containerRef.nativeElement.offsetHeight; this.height = containerHeight; } } ``` 在上面的示例中,通过 `ViewChild` 获取了容器的 `DOM` 元素,然后在 `ngOnInit` 中初始化了走马灯高度,并使用 `ResizeObserver` 监听了容器高度的变化,当容器高度变化时,重新计算走马灯高度,并设置为容器的高度。这样就能实现走马灯高度自适应容器的高度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值