読者です 読者をやめる 読者になる 読者になる

webhack / 猫とウェブ技術が好き

javascriptやcssやHTML5とかサーバーサイドの技術やプロジェクトマネジメントとかウェブに関するマーケティングとかWEBを取り巻く全般を好きに書くブログ

はてなブログのタイトル部分にCSS3で回るリングエフェクト追加してみた

CSS ウェブデザイン はてなブログ

はてなブログのデザイン変更でブログタイトル部分にCSS3でゆらゆら回るダブルリングのエフェクトを加えてみました。この記事ではこのカスタマイズ方法を説明します。

PCでの見た目

PCブラウザで見るとタイトルの文字の中心をぐるぐる回っています。

f:id:tkosuga:20150709142452j:plain

スマホでの見た目

スマホで見るとアイコン画像部分をぐるぐる回っています。

f:id:tkosuga:20150709143351p:plain

CSS3だけで実装しているのでブログのカスタマイズ範囲でも問題なく導入できました。

スマホのカスタマイズ方法

「デザイン > スマートフォン > タイトル下 > スマートフォン用にHTMLを設定する」に下のタグを追加してください。はてなPROじゃないとカスタマイズできないかも知れません。

<style type="text/css">
.hoja {
  color: #dcdce2;
  position: absolute;
  top: 45px;
  left: 35%;
  width: 100px;
  height: 100px;
  text-align: center;
}
.hoja:after,
.hoja:before {
  content: "";
  border-radius: 100%;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-transform-origin: center center;
      -ms-transform-origin: center center;
          transform-origin: center center;
}
.hoja:after {
  box-shadow: inset 0 17.5px 0 rgba(250, 250, 0, 0.6), inset 17.5px 0 0 rgba(250, 200, 0, 0.6), inset 0 -17.5px 0 rgba(250, 150, 0, 0.6), inset -17.5px 0 0 rgba(250, 100, 0, 0.6);
  -webkit-animation: rotar 2s -0.5s linear infinite;
          animation: rotar 2s -0.5s linear infinite;
}
.hoja:before {
  box-shadow: inset 0 17.5px 0 rgba(0, 250, 250, 0.6), inset 17.5px 0 0 rgba(0, 200, 200, 0.6), inset 0 -17.5px 0 rgba(0, 150, 200, 0.6), inset -17.5px 0 0 rgba(0, 200, 250, 0.6);
  -webkit-animation: rotarIz 2s -0.5s linear infinite;
          animation: rotarIz 2s -0.5s linear infinite;
}
@-webkit-keyframes rotar {
  0% {
    -webkit-transform: rotateZ(0deg) scaleX(1) scaleY(1);
            transform: rotateZ(0deg) scaleX(1) scaleY(1);
  }
  50% {
    -webkit-transform: rotateZ(180deg) scaleX(0.82) scaleY(0.95);
            transform: rotateZ(180deg) scaleX(0.82) scaleY(0.95);
  }
  100% {
    -webkit-transform: rotateZ(360deg) scaleX(1) scaleY(1);
            transform: rotateZ(360deg) scaleX(1) scaleY(1);
  }
}
@keyframes rotar {
  0% {
    -webkit-transform: rotateZ(0deg) scaleX(1) scaleY(1);
            transform: rotateZ(0deg) scaleX(1) scaleY(1);
  }
  50% {
    -webkit-transform: rotateZ(180deg) scaleX(0.82) scaleY(0.95);
            transform: rotateZ(180deg) scaleX(0.82) scaleY(0.95);
  }
  100% {
    -webkit-transform: rotateZ(360deg) scaleX(1) scaleY(1);
            transform: rotateZ(360deg) scaleX(1) scaleY(1);
  }
}
@-webkit-keyframes rotarIz {
  0% {
    -webkit-transform: rotateZ(0deg) scaleX(1) scaleY(1);
            transform: rotateZ(0deg) scaleX(1) scaleY(1);
  }
  50% {
    -webkit-transform: rotateZ(-180deg) scaleX(0.95) scaleY(0.85);
            transform: rotateZ(-180deg) scaleX(0.95) scaleY(0.85);
  }
  100% {
    -webkit-transform: rotateZ(-360deg) scaleX(1) scaleY(1);
            transform: rotateZ(-360deg) scaleX(1) scaleY(1);
  }
}
@keyframes rotarIz {
  0% {
    -webkit-transform: rotateZ(0deg) scaleX(1) scaleY(1);
            transform: rotateZ(0deg) scaleX(1) scaleY(1);
  }
  50% {
    -webkit-transform: rotateZ(-180deg) scaleX(0.95) scaleY(0.85);
            transform: rotateZ(-180deg) scaleX(0.95) scaleY(0.85);
  }
  100% {
    -webkit-transform: rotateZ(-360deg) scaleX(1) scaleY(1);
            transform: rotateZ(-360deg) scaleX(1) scaleY(1);
  }
}
</style>
<div class="hoja">&nbsp;</div>

PCのカスタマイズ方法

1.「デザイン > カスタマイズ > ヘッダ > タイトル下」に下のタグを追加してください。これもはてなPROじゃないとカスタマイズできないかも知れません。

<div class="hoja">&nbsp;</div>

2.「デザイン > カスタマイズ > デザインCSS」に下のタグを追加してください。これも以下略。

.hoja {
  color: #dcdce2;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -100px;
  margin-top: -200px;
  width: 200px;
  height: 200px;
  text-align: center;
  line-height: 200px;
}
.hoja:after,
.hoja:before {
  content: "";
  border-radius: 100%;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-transform-origin: center center;
      -ms-transform-origin: center center;
          transform-origin: center center;
}
.hoja:after {
  box-shadow: inset 0 17.5px 0 rgba(250, 250, 0, 0.6), inset 17.5px 0 0 rgba(250, 200, 0, 0.6), inset 0 -17.5px 0 rgba(250, 150, 0, 0.6), inset -17.5px 0 0 rgba(250, 100, 0, 0.6);
  -webkit-animation: rotar 2s -0.5s linear infinite;
          animation: rotar 2s -0.5s linear infinite;
}
.hoja:before {
  box-shadow: inset 0 17.5px 0 rgba(0, 250, 250, 0.6), inset 17.5px 0 0 rgba(0, 200, 200, 0.6), inset 0 -17.5px 0 rgba(0, 150, 200, 0.6), inset -17.5px 0 0 rgba(0, 200, 250, 0.6);
  -webkit-animation: rotarIz 2s -0.5s linear infinite;
          animation: rotarIz 2s -0.5s linear infinite;
}
@-webkit-keyframes rotar {
  0% {
    -webkit-transform: rotateZ(0deg) scaleX(1) scaleY(1);
            transform: rotateZ(0deg) scaleX(1) scaleY(1);
  }
  50% {
    -webkit-transform: rotateZ(180deg) scaleX(0.82) scaleY(0.95);
            transform: rotateZ(180deg) scaleX(0.82) scaleY(0.95);
  }
  100% {
    -webkit-transform: rotateZ(360deg) scaleX(1) scaleY(1);
            transform: rotateZ(360deg) scaleX(1) scaleY(1);
  }
}
@keyframes rotar {
  0% {
    -webkit-transform: rotateZ(0deg) scaleX(1) scaleY(1);
            transform: rotateZ(0deg) scaleX(1) scaleY(1);
  }
  50% {
    -webkit-transform: rotateZ(180deg) scaleX(0.82) scaleY(0.95);
            transform: rotateZ(180deg) scaleX(0.82) scaleY(0.95);
  }
  100% {
    -webkit-transform: rotateZ(360deg) scaleX(1) scaleY(1);
            transform: rotateZ(360deg) scaleX(1) scaleY(1);
  }
}
@-webkit-keyframes rotarIz {
  0% {
    -webkit-transform: rotateZ(0deg) scaleX(1) scaleY(1);
            transform: rotateZ(0deg) scaleX(1) scaleY(1);
  }
  50% {
    -webkit-transform: rotateZ(-180deg) scaleX(0.95) scaleY(0.85);
            transform: rotateZ(-180deg) scaleX(0.95) scaleY(0.85);
  }
  100% {
    -webkit-transform: rotateZ(-360deg) scaleX(1) scaleY(1);
            transform: rotateZ(-360deg) scaleX(1) scaleY(1);
  }
}
@keyframes rotarIz {
  0% {
    -webkit-transform: rotateZ(0deg) scaleX(1) scaleY(1);
            transform: rotateZ(0deg) scaleX(1) scaleY(1);
  }
  50% {
    -webkit-transform: rotateZ(-180deg) scaleX(0.95) scaleY(0.85);
            transform: rotateZ(-180deg) scaleX(0.95) scaleY(0.85);
  }
  100% {
    -webkit-transform: rotateZ(-360deg) scaleX(1) scaleY(1);
            transform: rotateZ(-360deg) scaleX(1) scaleY(1);
  }
}

元ネタ

CodePenの"Double ring"を拝借しました。

codepen.io

CSS3エフェクトではてなブログをカスタマイズするの楽しいです。