gpt4 book ai didi

css - webkit 不在绝对定位元素上设置边框半径动画

转载 作者:太空宇宙 更新时间:2023-11-04 09:51:41 24 4
gpt4 key购买 nike

尝试在充当子图像 mask 的父元素上为 border-radius 设置动画。这工作正常,除非图像有 position:absolute,在这种情况下我需要它。实际问题(在 Firefox 中运行良好):

https://jsfiddle.net/dcm5kwvp/2/

编辑:代码片段

setTimeout(function() {
document.querySelector('.mask').classList.add('loaded');
}, 100);
.mask {
width: 100%;
height: 300px;
border-radius: 0;
transition: border-radius .3s ease;
overflow: hidden;
position: relative;
z-index: 1;
}

.mask.loaded {
border-radius: 0 0 50% 50%;
}

figure {
position: absolute;
top: 0;
left: 0;
width: 100%;
z-index: -1;
}
<div class="mask">
<figure>
<img srcset="https://images.unsplash.com/photo-1470434151738-dc5f4474c239?dpr=1&auto=format&crop=entropy&fit=crop&w=1199&h=799&q=80&cs=tinysrgb">
</figure>
</div>

最佳答案

我找到了解决方案。这是 Webkit 引擎上的一个错误,position: absolute 禁用 overflow: hidden

解决它的最佳方法是在带有 mask 的元素上添加 -webkit-mask-image。在本例中,它是单个像素,并嵌入为 base64 图像。

setTimeout(function() {
document.querySelector('.mask').classList.add('loaded');
}, 100);
.mask {
width: 100%;
height: 300px;
border-radius: 0 0 0 0;
transition: border-radius .3s ease;
overflow: hidden;
-webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);
position: relative;
}

.mask.loaded {
border-radius: 0 0 50% 50%;
}

figure {
position: absolute;
top: 0;
left: 0;
width: 100%;
}
<div class="mask">
<figure>
<img srcset="https://images.unsplash.com/photo-1470434151738-dc5f4474c239?dpr=1&auto=format&crop=entropy&fit=crop&w=1199&h=799&q=80&cs=tinysrgb">
</figure>
</div>

关于css - webkit 不在绝对定位元素上设置边框半径动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39041535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com