border-radius遇到transform,overflow:hidden失效



最近在做加速球(效果如上)时遇到问题,在使用border-radius样式元素的子元素使用transform,overflow会失效.效果如下:


网络上查找的解决方案多为 mask-image,

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>加速器</title>
    <style type="text/css">
        body,html{
            height: 100%;
            margin: 100px
        }
        @-webkit-keyframes wave {
           from {
                -webkit-transform: rotateZ(0deg) ;
                transform: rotateZ(0deg);
            }
            to {
                -webkit-transform: rotateZ(360deg);
                transform: rotateZ(360deg);
            }
        }

        @keyframes wave {
            from {
                -webkit-transform: rotateZ(0deg);
                transform: rotateZ(0deg);
            }
            to {
                -webkit-transform: rotateZ(360deg);
                transform: rotateZ(360deg);
            }
        }
    </style>
</head>
<body>
<div>
    <div style="display:inline-block;width:300px;height:300px;border-radius:50%;overflow:hidden;background-color:rgba(255,0,0,0.2);-webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC); ">
            <div style="width:600px;height:600px;border-radius:40%;background-color:red;position:relative;top:45%;left:-50%;-webkit-animation:wave 5s linear infinite;z-index:66"></div>        
        </div>         
    </div>
</div>
</body>
</html>
查阅资料后找到另一种方法  transform-style:preserve-3d
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>加速器</title>
    <style type="text/css">
        body,html{
            height: 100%;
            margin: 100px
        }
        @-webkit-keyframes wave {
           from {
                -webkit-transform: rotateZ(0deg) ;
                transform: rotateZ(0deg);
            }
            to {
                -webkit-transform: rotateZ(360deg);
                transform: rotateZ(360deg);
            }
        }

        @keyframes wave {
            from {
                -webkit-transform: rotateZ(0deg);
                transform: rotateZ(0deg);
            }
            to {
                -webkit-transform: rotateZ(360deg);
                transform: rotateZ(360deg);
            }
        }
    </style>
</head>
<body>
<div> 
    <div style="display:inline-block;width:300px;height:300px;border-radius:50%;overflow:hidden;background-color:rgba(255,0,0,0.2);transform-style:preserve-3d">
            <div style="width:600px;height:600px;border-radius:40%;background-color:red;position:relative;top:45%;left:-50%;-webkit-animation:wave 5s linear infinite;z-index:66"></div>        
        </div>         
    </div>
</div>
</body>
</html>


  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这段 CSS 代码定义了一个名为 `.turnjs-slider .thumbnail` 的样式规则,用于设置一个缩略图的样式。下面是对这段代码的解释: ```css .turnjs-slider .thumbnail { width: 115px; height: 85px; position: absolute; background: rgba(0, 0, 0, 0.5); z-index: 10000; top: -100px; left: -17px; display: none; -webkit-transform: translate3d(0px, 50px, 0px) scale(0.1, 0.1); -webkit-transition: -webkit-transform 0.2s; -webkit-border-radius: 5px; -moz-transform: translate3d(0px, 50px, 0px) scale(0.1, 0.1); -moz-transition: -moz-transform 0.2s; -moz-border-radius: 5px; -o-transform: translate3d(0px, 50px, 0px) scale(0.1, 0.1); -o-transition: -o-transform 0.2s; -o-border-radius: 5px; -ms-transform: translate3d(0px, 50px, 0px) scale(0.1, 0.1); -ms-transition: -ms-transform 0.2s; -ms-border-radius: 5px; transform: translate3d(0px, 50px, 0px) scale(0.1, 0.1); transition: transform 0.2s; border-radius: 5px; } ``` 具体解释如下: - `width: 115px;` 和 `height: 85px;` 设置了缩略图的宽度和高度。 - `position: absolute;` 将缩略图的定位方式设置为绝对定位。 - `background: rgba(0, 0, 0, 0.5);` 设置了缩略图的背景颜色为半透明的黑色。 - `z-index: 10000;` 设置了缩略图的层级,使其位于其他元素之上。 - `top: -100px;` 和 `left: -17px;` 将缩略图的位置设置为距离父元素顶部和左侧的偏移量。 - `display: none;` 初始状态下将缩略图隐藏。 - `-webkit-transform`, `-webkit-transition`, `-webkit-border-radius` 等属性用于定义 Webkit 浏览器(如 Chrome 和 Safari)下的过渡和变换效果。 - `-moz-transform`, `-moz-transition`, `-moz-border-radius` 等属性用于定义 Firefox 浏览器下的过渡和变换效果。 - `-o-transform`, `-o-transition`, `-o-border-radius` 等属性用于定义 Opera 浏览器下的过渡和变换效果。 - `-ms-transform`, `-ms-transition`, `-ms-border-radius` 等属性用于定义 Internet Explorer 浏览器下的过渡和变换效果。 - `transform`, `transition`, `border-radius` 等属性用于定义其他浏览器下的过渡和变换效果。 这段代码通过设置缩略图的样式,包括尺寸、位置、背景颜色以及过渡效果等,使其具有一定的自定义外观和动画效果。请注意,这段代码可能是为特定的 HTML 结构和功能设计的,如果你要使用它,请确保正确地应用到相应的 HTML 元素上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一颗小行星!

恰饭ing

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值