コピペでできる!cssとhtmlのみのクリックでソーシャルリンクが出てくるボタン

CSS HTML
 2018.02.28
 2018.03.22

画面の左や右などに固定設置されたソーシャルリンクのボタンタイプをご紹介。
よく見かけるあのボタンを押すとピロピロッと隠れたソーシャルリンクが出てくるアレです。
固定する場所に「position: relative;」の設定が必要ですのでご注意ください。

アイコンはfontawesomeを使用しています。

browser:  65 11 20 11 

画面固定されたボタン型のソーシャルリンクメニュー

左上固定でクリックすると下にアイコンが出る

ニャン易度
<div class="contents">text</div>
<div class="cp_snslink09">
	<div class="cp_link_list">
	<input type="checkbox" id="cp_toggle" />
	<label for="cp_toggle" class="fa fa-share-alt"></label>
	<div class="cp_link">
	<ul>
	<li><a href="#" class="fa fa-twitter" title="Twitter"></a></li>
	<li><a href="#" class="fa fa-facebook" title="Facebook"></a></li>
	<li><a href="#" class="fa fa-google-plus" title="Google+"></a></li>
	<li><a href="#" class="fa fa-instagram" title="Instagram"></a></li>
	</ul>
	</div>
	</div>
</div>
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
body {
/*設置する親要素ページ全体ならbodyなど*/
position: relative;
height: 100vh;
margin: 0;
padding: 0;
}
.contents {
/*サンプルはfixedの確認のためにheight指定しています。*/
height: 2000px;
}
.cp_snslink09 {
position: fixed;
top: 6%;
left: 1%;
display: block;
margin: 0;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
width: 40%;
}
.cp_snslink09 .cp_link_list{
position: relative;
-webkit-perspective: 1000px;
perspective: 1000px;
z-index: 1000;
}
.cp_snslink09 .cp_link_list input{
display: none;
}
.cp_snslink09 .cp_link_list label {
position: relative;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
justify-content: center;
-webkit-box-align: center;
align-items: center;
cursor: pointer;
font-size: 24px;
width: 50px;
height: 50px;
text-align: center;
color: #ffffff;
background: #4DB6AC;
border-radius: 50%;
outline: none;
z-index: 100000;
-webkit-transition: all 0.3s;
transition: all 0.3s;
}
.cp_snslink09 .cp_link_list .cp_link {
position: absolute;
margin: 0;
top: 60px;
-webkit-transform: rotateY(180deg);
transform: rotateY(180deg);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
-webkit-transition-delay: 0.5s;
transition-delay: 0.5s;
}
.cp_snslink09 .cp_link_list .cp_link ul{
position: relative;
list-style: none;
margin: 0;
padding: 0;
z-index: -1;
}
.cp_snslink09 .cp_link_list .cp_link ul li{
margin-bottom: 10px;
position: relative;
opacity: 0;
width: 50px;
height: 50px;
-webkit-transform: translateY(-100%) rotate(0);
transform: translateY(-100%) rotate(0);
-webkit-transition: all 0.5s;
transition: all 0.5s;
}
.cp_snslink09 .cp_link_list .cp_link ul li a{
display: -webkit-box;
display: flex;
color: #ffffff;
text-decoration: none;
text-align: center;
font-size: 24px;
width: 100%;
height: 100%;
-webkit-box-align: center;
align-items: center;
-webkit-box-pack: center;
justify-content: center;
text-align: center;
background: #4DB6AC;
text-decoration: none;
border-radius: 50%;
-webkit-transition: all 0.3s;
transition: all 0.3s;
}
.cp_snslink09 .cp_link_list .cp_link ul li a:hover{
background: #F57C00;
color: #ffffff;
}
.cp_snslink09 .cp_link_list input:checked ~ label {
background: #009688;
}
.cp_snslink09 .cp_link_list input:checked ~ .cp_link{
-webkit-transform: rotateY(0);
transform: rotateY(0);
-webkit-transition-delay: 0s;
transition-delay: 0s;
}
.cp_snslink09 .cp_link_list input:checked ~ .cp_link ul li{
opacity: 1;
-webkit-transform: translateY(0) rotate(360deg);
transform: translateY(0) rotate(360deg);
-webkit-transition: all 0.3s;
transition: all 0.3s;
}
.cp_snslink09 .cp_link_list input:checked ~ .cp_link ul li:nth-of-type(1){
-webkit-transition-delay: 0;
transition-delay: 0;
z-index: 4;
}
.cp_snslink09 .cp_link_list input:checked ~ .cp_link ul li:nth-of-type(2){
-webkit-transition-delay: 0.3s;
transition-delay: 0.3s;
z-index: 3;
}
.cp_snslink09 .cp_link_list input:checked ~ .cp_link ul li:nth-of-type(3){
-webkit-transition-delay: .6s;
transition-delay: .6s;
z-index: 2;
}
.cp_snslink09 .cp_link_list input:checked ~ .cp_link ul li:nth-of-type(4){
-webkit-transition-delay: .9s;
transition-delay: .9s;
z-index: 1;
}

左上固定でクリックすると横にアイコンが出る

ニャン易度
<div class="cp_snslink10">
<div class="cp_link_list">
<input type="checkbox" id="cp_toggle02" />
<label for="cp_toggle02" class="fa fa-share-alt"></label>
<div class="cp_link">
<ul>
<li><a href="#" class="fa fa-twitter" title="Twitter"></a></li>
<li><a href="#" class="fa fa-facebook" title="Facebook"></a></li>
<li><a href="#" class="fa fa-google-plus" title="Google+"></a></li>
<li><a href="#" class="fa fa-instagram" title="Instagram"></a></li>
</ul>
</div>
</div>
</div>
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
body {
/*設置する親要素ページ全体ならbodyなど*/
position: relative;
height: 100vh;
margin: 0;
padding: 0;
}
.contents {
/*サンプルはfixedの確認のためにheight指定しています。*/
height: 2000px;
}
.cp_snslink10 {
position: fixed;
top: 6%;
left: 1%;
display: block;
margin: 0;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
width: 40%;
}
.cp_snslink10 .cp_link_list{
position: relative;
-webkit-perspective: 1000px;
perspective: 1000px;
z-index: 1000;
}
.cp_snslink10 .cp_link_list input{
display: none;
}
.cp_snslink10 .cp_link_list label {
position: relative;
display: -webkit-box;
display: flex;
-webkit-box-pack: center;
justify-content: center;
-webkit-box-align: center;
align-items: center;
cursor: pointer;
font-size: 24px;
width: 50px;
height: 50px;
text-align: center;
color: #ffffff;
background: #F48FB1;
border-radius: 50%;
outline: none;
z-index: 100000;
-webkit-transition: all 0.3s;
transition: all 0.3s;
}
.cp_snslink10 .cp_link_list .cp_link {
position: absolute;
margin: 0;
top: 60px;
-webkit-transform: rotateY(180deg);
transform: rotateY(180deg);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
-webkit-transition-delay: 0.5s;
transition-delay: 0.5s;
}
.cp_snslink10 .cp_link_list .cp_link ul{
position: relative;
list-style: none;
margin: 0;
padding: 0;
z-index: -1;
}
.cp_snslink10 .cp_link_list .cp_link ul li{
margin-bottom: 10px;
position: relative;
opacity: 0;
width: 50px;
height: 50px;
-webkit-transform: translateY(-100%) rotate(0);
transform: translateY(-100%) rotate(0);
-webkit-transition: all 0.5s;
transition: all 0.5s;
}
.cp_snslink10 .cp_link_list .cp_link ul li a{
display: -webkit-box;
display: flex;
color: #ffffff;
text-decoration: none;
text-align: center;
font-size: 24px;
width: 100%;
height: 100%;
-webkit-box-align: center;
align-items: center;
-webkit-box-pack: center;
justify-content: center;
text-align: center;
background: #F48FB1;
text-decoration: none;
border-radius: 50%;
-webkit-transition: all 0.3s;
transition: all 0.3s;
}
.cp_snslink10 .cp_link_list .cp_link ul li a:hover{
background: #42A5F5;
color: #ffffff;
}
.cp_snslink10 .cp_link_list input:checked ~ label {
background: #EC407A;
}
.cp_snslink10 .cp_link_list input:checked ~ .cp_link{
-webkit-transform: rotateY(0);
transform: rotateY(0);
-webkit-transition-delay: 0s;
transition-delay: 0s;
}
.cp_snslink10 .cp_link_list input:checked ~ .cp_link ul li{
opacity: 1;
-webkit-transform: translateY(0) rotate(360deg);
transform: translateY(0) rotate(360deg);
-webkit-transition: all 0.3s;
transition: all 0.3s;
}
.cp_snslink10 .cp_link_list input:checked ~ .cp_link ul li:nth-of-type(1){
-webkit-transition-delay: 0;
transition-delay: 0;
z-index: 4;
}
.cp_snslink10 .cp_link_list input:checked ~ .cp_link ul li:nth-of-type(2){
-webkit-transition-delay: 0.3s;
transition-delay: 0.3s;
z-index: 3;
}
.cp_snslink10 .cp_link_list input:checked ~ .cp_link ul li:nth-of-type(3){
-webkit-transition-delay: .6s;
transition-delay: .6s;
z-index: 2;
}
.cp_snslink10 .cp_link_list input:checked ~ .cp_link ul li:nth-of-type(4){
-webkit-transition-delay: .9s;
transition-delay: .9s;
z-index: 1;
}
.cp_snslink10 .cp_link_list .cp_link{
top: 0;
left: 60px;
}
.cp_snslink10 .cp_link_list .cp_link ul li{
display: inline;
float: left;
margin-bottom: 0;
margin-right: 10px;
-webkit-transform: translateX(-100%) rotate(0);
transform: translateX(-100%) rotate(0);
}
.cp_snslink10 .cp_link_list input:checked ~ .cp_link ul li{
-webkit-transform: translateX(0) rotate(360deg);
transform: translateX(0) rotate(360deg);
}

右下固定でクリックすると上にアイコンが出る

ニャン易度
<div class="cp_snslink11">
<nav class="cp_link_list">
<input type="checkbox" href="#" class="cp_open" id="cp_toggle03" />
<label class="cp_open_btn" for="cp_toggle03">
<i class="fa fa-share-alt cp_share fa-fw"></i>
</label>
<a class="cp_link facebook" href="#"><i class="fa fa-facebook fa-fw"></i></a>
<a class="cp_link twitter" href="#"><i class="fa fa-twitter fa-fw"></i></a>
<a class="cp_link google" href="#"><i class="fa fa-google-plus fa-fw"></i></a>
<a class="cp_link instagram" href="#"><i class="fa fa-instagram fa-fw"></i></a>
</nav>
</div>
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
body {
/*設置する親要素ページ全体ならbodyなど*/
position: relative;
height: 100vh;
margin: 0;
padding: 0;
}
.contents {
/*サンプルはfixedの確認のためにheight指定しています。*/
height: 2000px;
}
.cp_snslink11 {
position: fixed;
bottom: 1%;
right: 1%;
display: block;
margin: 0;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
}
.cp_snslink11 a {
-webkit-transition: all 0.8s;
transition: all 0.8s;
opacity: 0.8;
}
.cp_snslink11 .cp_link {
margin-left: -40px;
}
.cp_snslink11 .cp_link,
.cp_snslink11 .cp_open_btn {
line-height: 64px;
position: absolute;
width: 60px;
height: 60px;
margin-left: -40px;
-webkit-transition: -webkit-transform ease-out 200ms;
transition: -webkit-transform ease-out 200ms;
transition:         transform ease-out 200ms;
transition:         transform ease-out 200ms, -webkit-transform ease-out 200ms;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
text-align: center;
color: #ffffff;
border-radius: 100%;
background: #eeeeee;
}
.cp_snslink11 .cp_link_list {
font-size: 26px;
z-index: 99;
box-sizing: border-box;
width: 80px;
height: 50px;
margin: auto;
text-align: center;
}
.cp_snslink11 .cp_link_list a.cp_link .fa {
color: #ffffff;
}
.cp_snslink11 .cp_open {
display: none;
}
.cp_snslink11 .cp_share {
color: #e64a19;
}
.cp_snslink11 .cp_link:hover {
opacity: 1;
}
.cp_snslink11 .cp_link:nth-child(3),
.cp_snslink11 .cp_link:nth-child(4),
.cp_snslink11 .cp_link:nth-child(5),
.cp_snslink11 .cp_link:nth-child(6) {
-webkit-transition-duration: 180ms;
transition-duration: 180ms;
}
.cp_snslink11 .cp_open_btn {
z-index: 2;
cursor: pointer;
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
-webkit-transition-duration: 400ms;
transition-duration: 400ms;
-webkit-transform: scale(1.1, 1.1) translate3d(0, 0, 0);
transform: scale(1.1, 1.1) translate3d(0, 0, 0);
}
.cp_snslink11 .cp_open_btn:hover {
-webkit-transform: scale(1.2, 1.2) translate3d(0, 0, 0);
transform: scale(1.2, 1.2) translate3d(0, 0, 0);
}
.cp_snslink11 .cp_open:checked + .cp_open_btn {
-webkit-transition-timing-function: linear;
transition-timing-function: linear;
-webkit-transition-duration: 200ms;
transition-duration: 200ms;
-webkit-transform: scale(0.8, 0.8) translate3d(0, 0, 0);
transform: scale(0.8, 0.8) translate3d(0, 0, 0);
}
.cp_snslink11 .cp_open:checked ~ .cp_link {
-webkit-transition-timing-function: cubic-bezier(0.935, 0, 0.34, 1.33);
transition-timing-function: cubic-bezier(0.935, 0, 0.34, 1.33);
}
.cp_snslink11 .cp_open:checked ~ .cp_link:nth-child(3) {
-webkit-transition-duration: 180ms;
transition-duration: 180ms;
-webkit-transform: translate3d(0.08361px, -64px, 0);
transform: translate3d(0.08361px, -64px, 0);
}
.cp_snslink11 .cp_open:checked ~ .cp_link:nth-child(4) {
-webkit-transition-duration: 280ms;
transition-duration: 280ms;
-webkit-transform: translate3d(0.08361px, -134px, 0);
transform: translate3d(0.08361px, -134px, 0);
}
.cp_snslink11 .cp_open:checked ~ .cp_link:nth-child(5) {
-webkit-transition-duration: 380ms;
transition-duration: 380ms;
-webkit-transform: translate3d(0.08361px, -202px, 0);
transform: translate3d(0.08361px, -202px, 0);
}
.cp_snslink11 .cp_open:checked ~ .cp_link:nth-child(6) {
-webkit-transition-duration: 480ms;
transition-duration: 480ms;
-webkit-transform: translate3d(0.08361px, -270px, 0);
transform: translate3d(0.08361px, -270px, 0);
}
.cp_snslink11 .facebook {
background-color: #3b5998;
}
.cp_snslink11 .twitter {
background-color: #00aced;
}
.cp_snslink11 .google {
background-color: #dd4b39;
}
.cp_snslink11 .instagram {
background: radial-gradient(circle at 0% 90%, #fdf497 0%, #fdf497 5%, #fd5949 45%,#d6249f 60%,#285aeb 90%);
}

fontawesome

シンプルなものをお探しなら

copypet.jp

コピペでできる!cssとhtmlのみで作る画面固定されたソーシャルリンクメニュー8種 | copypet.jp|パーツで探す、web制作に使えるコピペサイト。

画面の左や右などに固定設置されたソーシャルリンクの帯タイプをご紹介。 よく見かけるあのホバーするとピロっとリンク名などが出てくるアレです。 …

copypet.jp

記事を見る

copypet.jp

CSS3などで新たに追加された要素・装飾方法など、日々コードを書いていないと忘れてしまったり、ささっとプロトタイプを作る時などちょっとしたことに時間をかけている暇はない。そんな時に「あ〜、あれストックしときゃよかったなぁ」って困った自分用のストックブログです。カスタマイズなどがしやすいよう、昨今のweb制作に取り入れられる一般的なコードを中心に掲載しています。

More Info

こんな記事はいかがですか?