Показать сообщение отдельно
  #2 (permalink)  
Старый 14.12.2016, 17:02
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

От квадрата перекрытия помогает
Код:
clip: rect(0px, 100%, 50%, 50%);
(по крайней мере в данном случае)

Обводка в 1 пкс при закр. уголках -- изчеснет, если вырезать по кругу, уменьшить его на 1%
Код:
clip-path: circle(49% at center);
<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Preloader</title>
        <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
    </head>
    <body>
        <style scoped>

html, body {
    height: 100%;
}

body {
    margin: 0;
    display: flex;
}

.preloader {
    --size: 150px;
    margin: auto;
    width: var(--size);
    height: var(--size);
    cursor: pointer;
}

.circle {
    border-radius: 50%;
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100%;
    background: #eee;
    transform: scale(.999);
    clip-path: circle(49% at center);
}

.circle > .circle {
    transform: scale(.666) scaleX(-1);
}

.circle::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background: #eee;
    border-radius: 50%;
    animation: swinger 3s linear infinite normal;
    clip: rect(0px, var(--size), calc(var(--size) / 2), calc(var(--size) / 2));
}

.circle.orange {
    background: radial-gradient(circle at 0% 100%, transparent 72%, rgba(187, 64, 1, 0.8) 74%, transparent 83%),
                radial-gradient(circle at 10% 120%, transparent 72%, rgba(187, 64, 1, 0.8) 78%, transparent 86%),
                linear-gradient(to top, #FF7D00, #FB7E01 50%, #FC5200 calc(50% + 1px), #FC5101);
}

.circle.blue {
    background: radial-gradient(circle at 0% 100%, transparent 72%, rgba(8,58,77, 0.8) 74%, transparent 83%),
                radial-gradient(circle at 10% 120%, transparent 72%, rgba(8,58,77, 0.8) 78%, transparent 86%),
                #50A2CA;
}

.circle.purple {
    background: radial-gradient(circle at 0% 100%, transparent 72%, rgba(59,46,67, 0.8) 74%, transparent 83%),
                radial-gradient(circle at 10% 120%, transparent 72%, rgba(59,46,67, 0.8) 78%, transparent 86%),
                #5B4A69;
}

@keyframes swinger {
    from {
        transform: rotate(0);
    }

    to {
        transform: rotate(1turn);
    }
}

        </style>
        <div role="presentation" class="preloader">
            <div class="circle orange">
                <div class="circle blue">
                    <div class="circle purple">
                        <div class="circle"></div>
                    </div>
                </div>
            </div>
        </div>
    </body>
</html>
Ответить с цитированием