CSS3:ロードアイコンパターン4

goto_jp 353views 更新:2014年2月26日

表示サンプルはこちら。
http://jsdo.it/goto_jp/7wez

HTMLはこちら。

<span class='icon4'></span>

Sassの記述は下記になります。

$icon-width: 20px;
$icon-height: 20px;
$color-1: #999;
$color-2: #fff;

.icon4 {
    display:inline-block;
    position:relative;
    vertical-align:middle;
    width:$icon-width;
    height:$icon-height;
    background-color:$color-1;
    border-radius:$icon-width;
    -ms-border-radius:$icon-width;

    &:before,&:after {
        display: inline-block;
        content:"";
        position:absolute;
        top:50%;
        left:50%;
    }
    &:before {
        margin-top:-$icon-width/2;
        margin-left:-$icon-width/10/2;
        width: $icon-width/10;
        border-top:solid $icon-width/2 rgba($color-2,.5);
        border-bottom:solid $icon-width/2 transparent;
        animation: 180s rotate infinite linear;
        -webkit-animation: 180s rotate infinite linear;
    }
    &:after {
        margin-top:-$icon-width/2;
        margin-left:-$icon-width/10/2;
        width: $icon-width/10;
        border-top:solid $icon-width/2 $color-2;
        border-bottom:solid $icon-width/2 transparent;
        animation: 3s rotate infinite linear;
        -webkit-animation: 3s rotate infinite linear;
    }
}
@keyframes rotate {
    0% {transform: rotate(0deg);}
    100% {transform: rotate(360deg);}
}
@-webkit-keyframes rotate {
    0% {-webkit-transform: rotate(0deg);}
    100% {-webkit-transform: rotate(360deg);}
}

:beforeと:afterを時計の針にして回転させています。

borderを上下に突っ張りだして、border-bottomを「transparent」で透明化して針にしています。
「none」で消してしまうとオブジェの中心点がずれてしまうので、「transparent」で透明色にして実体は存在させることでborder上下の中心を回転の中心点のまま保持できます。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません