jQueryで「プラス→マイナス」をコピペで実装!9選デ+-ス🛸

ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~ま~わ~れ~
この記事は約4分で読めます。
広告
リストやメニューでよく使う「プラス」からの「マイナス」をjQueryでコピペで実装!
アニメーションを9個用意しているので好きなのをコピペして使ってね!

それでは共通のHTML、CSS、jQueryを。
共通のCSSに、追加で欲しいアニメーションを追加するだけで
「プラス → マイナス」の様々なアニメーションが実装可能です。

共通のHTML

<div class="btn"></div>

共通のCSS

.btn {
  position: relative;
  width: 46px;
  height: 46px;
  display: block;
  margin: 30px auto;
  transition: 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
  cursor: pointer;
  will-change: transform;
}
.btn:hover {
  transform: scale(0.92);
}
.btn:before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 75%;
  height: 3px;
  border-radius: 10px;
  background: #000;
  display: block;
}
.btn:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 3px;
  height: 75%;
  border-radius: 10px;
  background: #000;
  display: block;
  transition: 0.3s cubic-bezier(0.76, 0, 0.24, 1);
  will-change: transform;
}

共通のjQuery

$(".btn").on("click", function() {
  if(!$(this).hasClass("active")) {
    $(this).addClass("active");
  } else {
    $(this).removeClass("active");
  }
});

01. プラスがフェードアウトしてマイナスに

.btn.active:after {
  opacity: 0;
}

02. プラスの縦棒が右にペコんと倒れマイナスに

.btn.active:after {
  transform: translate(-50%, -50%) rotate(90deg);
}

03. プラスの縦棒が左にペコんと倒れマイナスに

.btn.active:after {
  transform: translate(-50%, -50%) rotate(-90deg);
}

04. プラスが右にくるんと回ってマイナスに

.btn.active {
  transform: rotate(180deg);
}
.btn.active:after {
  transform: translate(-50%, -50%) rotate(90deg);
}

05. プラスが左にくるんと回ってマイナスに

.btn.active {
  transform: rotate(-179.99deg);
}
.btn.active:after {
  transform: translate(-50%, -50%) rotate(-90deg);
  opacity: 0;
}

06. プラスの縦棒が下にシュッと消えてマイナスに

.btn:after {
  transition: 0.3s cubic-bezier(0.33, 1, 0.68, 1);
}
.btn.active:after {
  transform: translate(-50%, 0%);
  opacity: 0;
}

07. プラスの縦棒が上にシュッと消えてマイナスに

.btn:after {
  transition: 0.3s cubic-bezier(0.33, 1, 0.68, 1);
}
.btn.active:after {
  transform: translate(-50%, -100%);
  opacity: 0;
}

08. プラスの縦線が真ん中に収まってマイナスに

.btn.active:after {
  height: 0;
}

09. プラスの縦線が真ん中に収まって回転してマイナスに

.btn.active {
  transform: rotate(180deg);
}
.btn.active:after {
  height: 0;
}
エンデ・バタローをフォローする
javascriptjQuery

埼玉県北本市に住み始めて2年目。

前は東京都の京王線沿線に。
その前は神戸の三宮に。
その前は名古屋の八事霊園の近くに住んでいました。

ある年の冬、車で島根県へ旅行に出かけました。
同県の山中にある寒村をゆるゆると走っていると地面が凍結しており
車ごと川に滑り落ちそうになった経験を持つ30代(男)です。

フロントエンドを始めて9年目になります。
最近は、ずっとwordpressをいじっており
エディタはVSCodeに乗り換え、日々の業務でイラレとフォトショ、HTMLとCSSとjavascriptとphpを使用してます。
仕事をしていて、検索する手間を省くためフロント技術ブログを書いています。

エンデ・バタローをフォローする
広告
初めてのブログ

コメント

タイトルとURLをコピーしました