>  > アライ(ARAI) オフロードヘルメット TOUR CROSS3 DETOUR レッド M 57-58cm 送料無料!

KENDA ICETEC NEO KR36 2018年製 スタッドレス スタッドレスタイヤ 155/55R14 MANARAY Euro Speed C-07 ホイールセット 4本 14インチ 14 X 4.5 +45 4穴 100

18インチ サマータイヤ セット【レガシィ B4(BE系)】MANARAY ヴァーテックワン ロングビーク タンザナイトブルー/リムDC/アンダーカットポリッシュ 7.0Jx18LEMANS V LM5 215/40R18

メニュー

現在、フロントエンドエンジニア / サーバサイドエンジニア / インフラエンジニアを募集中です ホンダ純正 春夏モデル Honda×RSタイチ アームドメッシュグローブ 赤 LLサイズ 0SYTP-X67-R HD店 クーポン利用で最大1000円割引 グロンドマン バイク シートカバー ヤマハ YAMAHA シルバー/白パイピング 張替 シグナスX[SE12J]台湾仕様 GH71YC540P20。詳細はこちら

アライ(ARAI) オフロードヘルメット TOUR CROSS3 DETOUR レッド M 57-58cm 送料無料!

先日注文した冷凍イカが届いたので、これまでやったことがなかった下処理に挑戦中の kouraku です。
おはこんばんちわ。

さてさて今回は、JSを使って格子状に並べたボックスに対し、見た目簡単なフェードイン・フェードアウトのアニメーションを付けたいと思います。

なお、アニメーションは以下4種です。

  • 順番通りにフェード
  • 横にフェード
  • 縦にフェード
  • 斜めにフェード

57-58cm TOUR レッド M 送料無料! CROSS3 アライ(ARAI) DETOUR M レッド オフロードヘルメット

100個のボックスを表示させるために、HTMLは以下のとおり組みます。

[HTML]

<div class="wrapper">
<button class="btnOrder">順番</button>
<button class="btnHorizon">横</button>
<button class="btnVertical">縦</button>
<button class="btnSlant">斜め</button>
<ul class="grid js-anim">
<li class="grid-item js-anim-item"><span></span></li>
 : 100個分
<li class="grid-item js-anim-item"><span></span></li>
</ul>
</div>

上部各ボタンを押すと、それぞれフェードアニメーションが行われる想定です。

続いて、CSSは以下のとおり用意します。

[CSS(SCSS)]

* {
 box-sizing: border-box;
}
body {
 margin: 0;
}
.wrapper {
 max-width: 800px;
 margin: 0 auto;
}
.grid {
 display: flex;
 flex-flow: row wrap;
 margin: 0;
 padding: 0;
 list-style-type: none;
 &-item {
 opacity: 0;
 width: 50px;
 height: 50px;
 margin: 5px;
 transition: opacity 0.5s ease-in-out;
 span {
 display: block;
 width: 100%;
 height: 100%;
 background: rgba(155,155,99,0.7);
 transition: all 0.2s ease-in-out;
 cursor: pointer;
 &:hover {
 transform: translate3d(0, -5px, 0);
 box-shadow: 0 7px 5px -1px rgba(#000, 0.2);
 }
 }
 }
 &.animated {
 .grid-item {
 opacity: 1;
 }
 }
}

max-width: 800px の中に100個のボックスを格子状に並べるイメージです 【メーカー在庫あり】 アクティブ ACTIVE 車種専用スロットルキット TYPE-1 巻取径φ42 07年 トライアンフ ストリートトリプル メッキ/シルバー 1068330 JP店。
フェード効果は、.grid に .animated が付与されたら、opacity: 1 になる、という単純なものです。
ついでに、各ボックスをホバーすると、ボックスアニメーションするようにしてます。
今回のテーマではいらない要素ですが・・・(苦笑)

この状態で、例えば

$('button').on('click', function() {
 $('.grid').toggleClass('animated');
});

とすれば、いずれかのボタンをクリックすると、全てのボックスが一斉にフェードイン・フェードアウトします。

時間差でフェードさせるには・・・?

順番にフェードアニメーションさせるには、各ボックスに対して transition-delay を与えれば可能です。
例えば、1個目は0s、2個目は0.05s、3個目は0.1s・・・といった具合で、0.05s ずつずらしていきます LEONIS FY/レオニスFY スズキ エスクード YD/YE21S ボルト車 アルミホイール 4本 【17×7.0J 5-114.3 INSET47 BMCMC】。

では、各種アニメーションを実現するための transition-delay 付与方法を考えていきます。

順番通りにフェード

こちらは単純 FUJITSUBOワゴリスマフラーGF-SXU15Wハリアー H9/12~H12/11。最初から最後まで順番に transition-delay を与えていけば良いですね。
例えば、こんな感じです。

$('.grid-item').each(function(index) {
 var delay = 0.05 * index;
 $(this).css({
 'transition-delay': delay+'s'
 });
});

横にフェード

ここからいきなり難易度が上がります。
考え方としては、まず .grid の幅に .grid-item が何個入るか、
言い換えると、1行辺り何列になるかを計算します。

あとは、各行の頭から終わりまで順番に transition-delay を与えます。
例えば、こんな感じです。

var $elm = $('.grid');
// ボックス1つ辺りの幅を取得
var $item = $('.grid-item');
var gridWidth = $item.width() + parseInt($item.css('margin-left')) + parseInt($item.css('margin-right'));
// 1行辺り何列かを計算
var maxCol = Math.floor($elm.width() / gridWidth);
// 現在の列数と1行辺りの列数の余剰で transition-delay を計算
$item.each(function(index) {
 var column = Math.floor(index % maxCol);
 var delay = 0.05 * column;
 $(this).css({
 'transition-delay': delay + 's'
 });
});

縦にフェード

考え方は、横にフェードと同じです。1行辺り何列か。

あとは、行毎に transition-delay を与えます 。
例えば、こんな感じです。

var $elm = $('.grid');
// ボックス1つ辺りの幅を取得
var $item = $('.grid-item');
var gridWidth = $item.width() + parseInt($item.css('margin-left')) + parseInt($item.css('margin-right'));
// 1行辺り何列かを計算
var maxCol = Math.floor($elm.width() / gridWidth);
// 現在の列数と1行辺りの列数の除数で transition-delay を計算
$item.each(function(index) {
 var row = Math.floor(index / maxCol);
 var delay = 0.05 * row;
 $(this).css({
 'transition-delay': delay + 's'
 });
});

斜めにフェード

さて、最後の斜めはどの様に考えれば良いでしょうか。実はものすごく簡単です。
横にフェードを使用して、1行毎に1列分の transition-delay を加算してずらせば良いのです。

例えば、こんな感じです。

var $elm = $('.grid');
// ボックス1つ辺りの幅と高さを取得
var $item = $('.grid-item');
var gridWidth = $item.width() + parseInt($item.css('margin-left')) + parseInt($item.css('margin-right'));
// 1行辺り何列かを計算
var maxCol = Math.floor($elm.width() / gridWidth);
// 現在の列数、行数を加算して transition-delay を計算
$item.each(function(index) {
 var column = Math.floor(index % maxCol);
 var row = Math.floor(index / maxCol);
 var delay = 0.05 * column + 0.05 + row;
 $(this).css({
 'transition-delay': delay + 's'
 });
});

では、最終的にCodePenにまとめましたので、動作を確認しましょう。

アライ(ARAI) オフロードヘルメット TOUR CROSS3 DETOUR レッド M 57-58cm 送料無料!

   -ENGLISH PAGES- -中文(繁體字)- 
   

 商品説明 ■サイズ・色違い・関連商品



関連商品の検索結果一覧はこちら


■商品内容

●オフロード系のマルチパーパスヘルメット「ツアークロス3」をベースとしたデザインモデル「ツアークロス3・デツアー」を発売させていただきます。
●走るステージを選ばないアドベンチャー系バイクを中心に大地をゆったりと走り楽しむライダー達をどこまでも遠くへ、そして遠回り(デツアー)したくなる様なツーリングで力強さを感じるレッドと青カラーをメインにシャープなラインで構成したデザインモデルです。


■商品スペック

規格:SNELL/JIS
帽体:PB-cLc
内装:ハイフィッティング冷・乾内装(オプションにて調節可能・特許)




■送料・配送についての注意事項

●本商品の出荷目安は【2 - 6 ※土日・祝除く】となります。

●お取り寄せ商品のため、稀にご注文入れ違い等により欠品・遅延となる場合がございます。

●本商品は同梱区分【TS1】です。同梱区分が【TS1】と記載されていない他商品と同時に購入された場合、梱包や配送が分かれます。

●沖縄、離島および一部地域への配送時に追加送料がかかる場合や、配送ができない場合がございます。

おしゃれで、かわいいアイテムを訳あり在庫処分セール 激安価格で販売中!詳しくはこちら!

See the Pen グリッドのアニメーション(フェードイン・フェードアウト) by bashalog (@bashalog) on CodePen.

まとめ

「斜めにフェード、ってどうやれば良いんだろう?」

そんなふとした思いからちょっと考えてみました今回のアニメーション。
簡単なところから1個1個進めていくと、意外にもシンプルな作りでできることがわかりますね。
ということで、今回の今更・・・はここまでです。

にしても、イカの下処理とか準備とか・・・初めてだと加減がさっぱりわからなくて難しいですね。。。
1杯目はハラワタを見事に傷つけてしまい、足には塩を振りすぎて見事に失敗。。。
次こそうまくやりたいところです。

アライ(ARAI) オフロードヘルメット TOUR CROSS3 DETOUR レッド ミシュラン M アールエスティー 57-58cm 送料無料!

この記事を読んだ人にオススメ

Create React App で SSR してみた。

  • JavaScript

fujihara

  • はてブ
  • Facebook

今更聞けない擬似要素、擬似クラスについて

  • HTML/CSS

koya

  • はてブ
  • Facebook

jqPlotの棒グラフでバーを消して非表示にする方法

  • JavaScript

yamashita

  • はてブ
  • Facebook

ブラウザで特定のドメインをブロックする方法 (Chrome 小ネタ)

  • JavaScript

fujihara

  • はてブ
  • Facebook
{yahoojp}jpprem01-zenjp40-wl-zd-19813