ローディング中

AMPにハンバーガーメニューなどのアニメーションを実装する方法

Accelerated Mobile Pages、略してAMP。
モバイルページが驚くほど早く表示されるこの技術。

リリース以降徐々に広がってきており、Googleの検索結果でもAMPのロゴをよく見るようになってきました。

スクリーンショット 2017 02 28 午前0 24 26
※AMP表示の例

さて、弊社でもWordPress用AMPデザインテーマ「AWESOME」を無料配布しています
AMPテーマ開発の際の難点が、成約が多すぎるという点が挙げられます。
やりたくても出来ないことが沢山あるからです。

AMP用のhtmlやcssの容量の成約(50kb以内)などなど。
その為、jqueryを使ってできていたことが、AMPでは出来ないためとてもシンプルなUIになりがちです。
ですが、実はハンバーガーメニューやスライダーといったアニメーションはAMPでも実装できることをご存知ですか?

今回はAMPでも実装できるハンバーガーメニューメニューやスライダーの作り方を解説していきます。

目次

AMP対応ハンバーガーメニュー&スライダー実装方法

AMP対応Javascript

Ea2925e943b4dbf564b06d52c495e3b6
▶AMP BY EXPAMPLE

ampではjavascriptが使えないと思われがちですが、実は用意されているjavascriptに関しては使用可能です。
上記AMP BY EXAMPLEでは、様々なアニメーションのデモが用意されており、マークアップ方法が紹介されています。

  • スライダー
  • アコーディオンメニュー
  • Google mapの表示
  • iframe
  • lightbox

といったAMPでは出来ないと思われがちな機能も実装可能です。

ハンバーガーメニューの作成方法

弊社のAMPテーマでもハンバーガーメニューを実装しています。
動作としては下記のような感じ。

メニューアイコンを押すと、横からスライドしてメニューが表示されるような仕様になっています。
ここで使用したのはamp-sidebarというjsです。

ハンバーガーメニューっぽくみせるための「三」のアイコンはSVGファイルです。
クローズの「☓」もSVGです。

マークアップ方法はいたって簡単

 

<script async custom-element=”amp-sidebar” src=”https://cdn.ampproject.org/v0/amp-sidebar-0.1.js”></script>

 

をheadタグの中に入れ込みます。
そして

 

<amp-sidebar id=”sidebar” layout=”nodisplay” side=”right”>
メニューの内容はここに
</amp-sidebar>

 

これだけでスライドメニューが作れてしまいます。
side="" の中のコードがどこからスライドしてくるかを示しています。
今回はright。つまりは右からのスライドで設定しています。
お好みでこのあたりはいじっていくと楽しそうですね。

アコーディオン、Google mapなども

https://ampbyexample.com/

サイトを覗くととても多くの、機能がAMPでも実装できることが分かります。
AMPページのDEMOなんかもいくつか紹介されていて、実際にレイアウトしていくときの参考になるのではないでしょうか。

是非重い腰をあげてAMPページの作成に挑戦してみてくださいね。

ホームページ・デザイン制作のご相談・ご依頼は

079-451-5881

68ED4C65-BA1E-46D0-A7AC-B9869923C696 Created with sketchtool. A07C553F-CF16-4B7D-94FE-D36AE0A6297D Created with sketchtool. 37B7D8F4-7A18-4725-9EC6-595ABDF69D64 Created with sketchtool. 95DFB680-1EDF-4199-BC4A-BB6752EBA23C Created with sketchtool. 02DDF754-E1DB-4EF2-B6BB-C884722938C4 Created with sketchtool. NEW! 1A95E369-6469-4C46-B38F-F83410B928B0 Created with sketchtool. Group 5Group 2Group 4Group 3E4FC8CF2-721D-4699-8162-18E886C432C1 Created with sketchtool.