Angular12+Owl Carousel中mat-card hover放大无法超出轮播容器问题
Angular + Owl Carousel 实现Netflix式卡片悬浮放大溢出效果修复方案
问题根源
ngx-owl-carousel-o 为实现轮播滚动效果,默认给所有内部层级容器添加了overflow: hidden属性,导致hover放大的卡片超出容器部分被自动裁剪,无法外溢展示。
完整修改方案
1. 样式(SCSS)修改
直接替换你原有的CSS代码为以下内容,已覆盖所有需要调整的点:
.container { margin-top: 2rem; margin-right: 300px; margin-left: 5%; /* 确认外层无overflow: hidden即可 */ } .sessao-titulo { margin-left: 5%; color: #fff; } .carrossel { background-color: rgba(0, 0, 0, 0.1); /* 移除固定高度避免裁剪放大后的卡片,加padding预留放大空间 */ padding: 70px 45px; } /* 覆盖Owl Carousel默认overflow限制,加::ng-deep穿透Angular样式封装,限定父类避免全局污染 */ ::ng-deep .carrossel .owl-carousel, ::ng-deep .carrossel .owl-stage-outer, ::ng-deep .carrossel .owl-stage, ::ng-deep .carrossel .owl-item { overflow: visible !important; } /* 提高轮播导航按钮层级,避免被放大的卡片遮挡 */ ::ng-deep .carrossel .owl-nav button { position: relative; z-index: 20; } .card { width: 290px; height: 225px; margin: 0 12px; background-color: #fff; border-radius: 10px; box-sizing: border-box; /* 原5.5s过渡时间过长,改为0.3s符合常用交互动效速度 */ transition: all 0.3s ease; /* 开启定位用于控制层级 */ position: relative; z-index: 1; } .carrossel .card:hover { transform: scale(1.5); background-color: aqua; /* hover时提高层级,避免被周边卡片遮挡 */ z-index: 10; } .corpo-relatorio { padding: 20px 10px 20px 10px; } .titulo-relatorio { color: #000; font-size: 18px; text-align: center; font-weight: 500; } .descricao-relatorio { color: #000; font-size: 13px; padding-top: 5px; }
2. 可选优化(按需调整)
- 如果放大后左右边缘的卡片还是被外层容器裁剪,可以适当增大
.container的左右margin,或者给.carrossel加更大的左右padding - 缩放比例可以根据需求调整
scale的参数,同步调整padding值预留对应空间即可
内容的提问来源于stack exchange,提问作者user16592924
相关产品推荐
相关产品推荐

